2025-05-17 19:12:01 +00:00
{
2025-09-29 18:22:59 +00:00
"common" : {
2025-11-16 19:30:11 +00:00
"more_actions" : "Más acciones" ,
2025-09-29 18:22:59 +00:00
"append_empty_row" : "Añadir fila" ,
"append_empty_row_tooltip" : "Añadir una fila vacía" ,
2025-11-16 19:30:11 +00:00
"edit_row" : "Modificar" ,
2025-09-29 18:22:59 +00:00
"duplicate_row" : "Duplicar" ,
2025-10-08 13:11:26 +00:00
"duplicate_selected_rows" : "Duplicar" ,
"duplicate_selected_rows_tooltip" : "Duplicar fila(s) seleccionada(s)" ,
"remove_selected_rows" : "Eliminar" ,
"remove_selected_rows_tooltip" : "Eliminar fila(s) seleccionada(s)" ,
2025-11-16 19:30:11 +00:00
"download_pdf" : "Descargar en PDF" ,
"send_email" : "Enviar por email" ,
2025-09-29 18:22:59 +00:00
"insert_row_above" : "Insertar fila arriba" ,
"insert_row_below" : "Insertar fila abajo" ,
2025-11-16 19:30:11 +00:00
"delete_row" : "Eliminar" ,
2025-10-08 13:11:26 +00:00
"actions" : "Acciones" ,
"rows_selected" : "{{count}} fila(s) seleccionadas." ,
2025-10-18 22:31:30 +00:00
"rows_selected_of_total" : "{{count}} de {{total}} fila(s) seleccionadas." ,
"search_placeholder" : "Escribe aquí para buscar..." ,
"search" : "Buscar" ,
"clear" : "Limpiar"
2025-09-29 18:22:59 +00:00
} ,
2026-08-31 18:51:27 +00:00
"recurring_proformas" : {
"list" : {
"title" : "Proformas recurrentes" ,
"description" : "Gestiona tus proformas recurrentes" ,
"create" : "Nueva proforma recurrente" ,
"search_placeholder" : "Buscar..." ,
"status_filter" : "Filtrar por estado" ,
"empty" : "No hay proformas recurrentes." ,
"columns" : {
"name" : "Nombre" ,
2026-09-02 10:04:05 +00:00
"customer" : "Cliente" ,
2026-08-31 18:51:27 +00:00
"status" : "Estado" ,
"schedule" : "Recurrencia" ,
2026-09-02 10:04:05 +00:00
"frequency" : "Frecuencia" ,
"next_occurrence" : "Próxima generación" ,
"issues" : "Incidencias" ,
"updated_at" : "Última actualización" ,
"actions" : "Acciones"
} ,
"issues" : {
"none" : "Sin incidencias" ,
"issue" : "Incidencia"
2026-08-31 18:51:27 +00:00
} ,
"schedule" : {
"none" : "Sin recurrencia" ,
"week_one" : "Cada semana" ,
"week_other" : "Cada {{count}} semanas" ,
"month_one" : "Cada mes" ,
"month_other" : "Cada {{count}} meses" ,
"year_one" : "Cada ano" ,
"year_other" : "Cada {{count}} anos" ,
"same_day" : "Mismo dia" ,
"last_day_of_month" : "Ultimo dia del mes"
} ,
"error" : {
"title" : "No se pudo cargar el listado" ,
"description" : "Ha ocurrido un error al cargar las proformas recurrentes." ,
"retry" : "Reintentar"
}
} ,
2026-09-02 10:04:05 +00:00
"actions" : {
"activate" : "Activar" ,
"pause" : "Pausar" ,
"resume" : "Reanudar" ,
"complete" : "Completar" ,
"archive" : "Archivar" ,
"duplicate" : "Duplicar" ,
2026-09-02 10:14:11 +00:00
"delete" : "Eliminar" ,
"operation_in_progress" : "Operación en curso"
2026-09-02 10:04:05 +00:00
} ,
2026-08-31 18:51:27 +00:00
"status" : {
"all" : "Todos" ,
"draft" : "Borrador" ,
"active" : "Activa" ,
"paused" : "Pausada" ,
"completed" : "Completada" ,
"archived" : "Archivada"
} ,
2026-09-01 09:36:20 +00:00
"schedule_summary" : {
"sentence" : "La proforma se generará {{cadence}}{{monthlyRule}}, {{period}}." ,
"cadence" : {
"week_one" : "cada semana" ,
"week_other" : "cada {{count}} semanas" ,
"month_one" : "cada mes" ,
"month_other" : "cada {{count}} meses" ,
"year_one" : "cada año" ,
"year_other" : "cada {{count}} años"
} ,
"monthly_rule" : {
"same_day" : "el mismo día de cada mes" ,
"last_day_of_month" : "el último día de cada mes"
} ,
"period" : {
"indefinite" : "a partir del {{startDate}} y sin fecha de finalización" ,
"until" : "a partir del {{startDate}} y hasta el {{endDate}}"
}
} ,
2026-08-31 18:51:27 +00:00
"detail" : {
"context" : "Proforma recurrente" ,
"back" : "Volver al listado" ,
"loading" : "Cargando proforma recurrente" ,
"customer" : "Cliente" ,
"no_customer" : "Sin cliente" ,
"created_at" : "Creada" ,
"updated_at" : "Actualizada" ,
2026-09-02 11:05:05 +00:00
"metadata" : "Creada el {{createdAt}} · Última actualización {{updatedAt}}" ,
2026-08-31 18:51:27 +00:00
"inherited" : "Heredado" ,
"general" : {
"title" : "Informacion general"
} ,
"schedule" : {
"title" : "Programacion" ,
"interval" : "Recurrencia" ,
"start_date" : "Fecha de inicio" ,
"end_date" : "Fecha de fin" ,
"no_end_date" : "Sin fecha de fin" ,
"monthly_rule" : "Regla mensual" ,
"not_applicable" : "No aplica"
} ,
"commercial" : {
"title" : "Condiciones comerciales" ,
"payment_term" : "Plazo de pago" ,
"payment_method" : "Metodo de pago" ,
"language" : "Idioma" ,
"currency" : "Moneda" ,
"proforma_series" : "Serie de proforma" ,
"issued_invoice_series" : "Serie de factura emitida" ,
"global_discount" : "Descuento global"
} ,
"items" : {
"title" : "Lineas" ,
"empty" : "No hay lineas configuradas." ,
"no_description" : "Sin descripcion"
} ,
"error" : {
"title" : "No se pudo cargar la proforma recurrente" ,
"description" : "Ha ocurrido un error al cargar el detalle." ,
"retry" : "Reintentar"
}
} ,
"occurrences" : {
"title" : "Generaciones" ,
"empty" : "Todavia no hay generaciones para esta recurrencia." ,
"error" : "No se pudieron cargar las generaciones." ,
"retry" : "Reintentar carga" ,
"open_proforma" : "Ver proforma" ,
"columns" : {
"scheduled_date" : "Fecha prevista" ,
"status" : "Estado" ,
"attempt_count" : "Intentos" ,
"proforma" : "Proforma" ,
"generated_at" : "Generada el" ,
"last_error" : "Ultimo error"
} ,
"status" : {
"pending" : "Pendiente" ,
"processing" : "Procesando" ,
"failed" : "Fallida" ,
"generated" : "Generada"
}
} ,
"create" : {
"title" : "Nueva proforma recurrente" ,
"description" : "Crea un borrador minimo para completar su configuracion mas adelante." ,
"form_title" : "Datos iniciales" ,
"name" : "Nombre" ,
"name_required" : "El nombre es obligatorio." ,
"description_label" : "Descripcion" ,
"submit" : "Crear" ,
"creating" : "Creando..." ,
"cancel" : "Cancelar" ,
"error" : "No se pudo crear la proforma recurrente."
}
} ,
2025-09-29 18:22:59 +00:00
"catalog" : {
2025-11-16 19:30:11 +00:00
"proformas" : {
"status" : {
2025-11-22 16:09:37 +00:00
"all" : {
"label" : "Todas" ,
"description" : ""
} ,
"draft" : {
"label" : "Borrador" ,
"description" : "Proforma en preparación"
} ,
"sent" : {
"label" : "Enviada" ,
"description" : "Enviada al cliente"
} ,
"approved" : {
"label" : "Aprobada" ,
"description" : "Aprobada por el cliente"
} ,
"rejected" : {
"label" : "Rechazada" ,
"description" : "Rechazada por el cliente"
} ,
"issued" : {
"label" : "Emitida" ,
"description" : "Convertida a factura"
}
2025-11-16 19:30:11 +00:00
}
2025-11-17 17:20:18 +00:00
} ,
"issued_invoices" : {
2026-08-11 15:25:17 +00:00
"document_status" : {
"issued" : {
"label" : "Emitida" ,
"description" : "Factura emitida y cerrada"
}
} ,
2025-11-17 17:20:18 +00:00
"status" : {
2025-11-24 13:05:10 +00:00
"all" : {
"label" : "All" ,
"description" : "Proforma en preparación"
} ,
2026-08-11 15:25:17 +00:00
"issued" : {
"label" : "Emitida" ,
"description" : "Factura emitida y cerrada"
} ,
2025-11-24 13:05:10 +00:00
"pendiente" : {
"label" : "Pendiente" ,
"description" : "Registro encolado y no procesado aún"
} ,
"correcto" : {
"label" : "Correcto" ,
"description" : "Registro procesado correctamente por la AEAT"
} ,
"aceptado_con_error" : {
"label" : "Aceptado con errores" ,
"description" : "Registro aceptado con errores por la AEAT. Se requiere enviar un registro de subsanación o emitir una rectificativa"
} ,
"incorrecto" : {
"label" : "Incorrecto" ,
"description" : "Registro considerado incorrecto por la AEAT. Se requiere enviar un registro de subsanación con rechazo_previo=S o rechazo_previo=X o emitir una rectificativa"
} ,
"duplicado" : {
"label" : "Duplicado" ,
"description" : "Registro no aceptado por la AEAT por existir un registro con el mismo (serie, numero, fecha_expedicion)"
} ,
"anulado" : {
"label" : "Anulado" ,
"description" : "Registro de anulación procesado correctamente por la AEAT"
} ,
"factura_inexistente" : {
"label" : "Factura inexistente" ,
"description" : "Registro de anulación no aceptado por la AEAT por no existir la factura"
} ,
"rechazado" : {
"label" : "No registrado" ,
"description" : "Registro rechazado por la AEAT"
} ,
"error" : {
"label" : "Error" ,
"description" : "Error en el servidor de la AEAT. Se intentará reenviar el registro de facturación de nuevo"
}
2025-11-17 17:20:18 +00:00
}
2025-09-29 18:22:59 +00:00
}
} ,
2025-11-21 18:42:17 +00:00
"proformas" : {
2026-09-01 09:36:20 +00:00
"create_from_proforma" : {
"title" : "Crear proforma recurrente" ,
"description" : "Configura la recurrencia inicial usando esta proforma como origen." ,
"period_title" : "Periodo de vigencia" ,
"recurrence_title" : "Configuracion de recurrencia" ,
"name" : "Nombre" ,
"name_required" : "El nombre es obligatorio." ,
"start_date" : "Fecha de inicio" ,
"start_date_invalid" : "La fecha de inicio es obligatoria." ,
"end_date" : "Fecha de fin" ,
"end_date_invalid" : "La fecha de fin no es valida." ,
"no_end_date" : "Sin fecha de fin" ,
"frequency" : "Frecuencia" ,
"interval" : "Intervalo" ,
"interval_invalid" : "El intervalo debe ser un entero mayor que 0." ,
"monthly_rule" : "Regla mensual" ,
"monthly_rules" : {
"same_day" : "Mismo dia del mes" ,
"last_day_of_month" : "Ultimo dia del mes"
} ,
"preview" : {
"title" : "Vista previa de la recurrencia"
} ,
"units" : {
"week" : "Semana" ,
"month" : "Mes" ,
"year" : "Año"
} ,
"submit" : "Crear recurrencia" ,
"creating" : "Creando..." ,
"cancel" : "Cancelar" ,
"success_title" : "Proforma recurrente creada" ,
"success_description" : "La recurrencia se ha creado como borrador." ,
"error_title" : "No se pudo crear la recurrencia" ,
"error_description" : "Revisa los datos e intentalo de nuevo."
} ,
2026-07-29 12:40:59 +00:00
"archive" : {
"confirm_title" : "Archivar proforma" ,
"confirm_description" : "La proforma se ocultará del listado principal, pero seguirá conservada para consulta histórica." ,
2026-07-29 16:23:57 +00:00
"confirm" : "Archivar" ,
"cancel" : "Cancelar" ,
"submitting" : "Archivando..." ,
2026-07-29 12:40:59 +00:00
"success_title" : "Proforma archivada" ,
"success_description" : "La proforma se ha archivado correctamente." ,
"error_title" : "No se pudo archivar la proforma" ,
"error_conflict_message" : "No se puede archivar una proforma en este estado." ,
"error_unknown_message" : "Ha ocurrido un error inesperado al archivar la proforma."
} ,
"unarchive" : {
"confirm_title" : "Desarchivar proforma" ,
"confirm_description" : "La proforma volverá a aparecer en el listado principal." ,
2026-07-29 16:23:57 +00:00
"confirm" : "Desarchivar" ,
"cancel" : "Cancelar" ,
"submitting" : "Desarchivando..." ,
2026-07-29 12:40:59 +00:00
"success_title" : "Proforma desarchivada" ,
"success_description" : "La proforma se ha desarchivado correctamente." ,
"error_title" : "No se pudo desarchivar la proforma" ,
"error_conflict_message" : "No se puede desarchivar una proforma en este estado." ,
"error_unknown_message" : "Ha ocurrido un error inesperado al desarchivar la proforma."
} ,
2026-04-05 20:17:11 +00:00
"issue_proforma_dialog" : {
"title" : "Emitir a factura" ,
"description" : "¿Seguro que quieres emitir la factura desde la proforma {{reference}}?" ,
"warning" : "Esta acción creará una nueva factura definitiva y la proforma pasará al estado \"Emitida\", no pudiendo modificarse ni eliminarse posteriormente." ,
"confirm" : "Emitir factura" ,
"submitting" : "Emitiendo..." ,
"success_title" : "Proforma emitida correctamente" ,
"success_description" : "La proforma {{reference}} se ha emitido a factura correctamente." ,
"error_title" : "Error al emitir la proforma" ,
"not_allowed_title" : "Acción no permitida" ,
"not_allowed_description" : "Solo se pueden emitir proformas en estado \"Aprobada\"." ,
"unknown_error" : "Ha ocurrido un error inesperado" ,
"cancel" : "Cancelar"
} ,
2026-08-18 21:03:04 +00:00
"issuance_readiness" : {
"blocked_title" : "No se puede emitir todavía" ,
"detail_description" : "Completa los datos pendientes antes de emitir esta proforma." ,
"update_description" : "Esta comprobación refleja el estado guardado actualmente. Guarda los cambios para actualizarla." ,
"load_error_title" : "No se pudo comprobar la preparación para emitir" ,
"load_error_description" : "Inténtalo de nuevo en unos instantes." ,
"retry" : "Reintentar" ,
"edit_action" : "Editar proforma" ,
"dialog" : {
"loading" : "Comprobando si la proforma está lista para emitir..." ,
"blocked_title" : "No se puede emitir todavía" ,
"blocked_alert_title" : "Completa los siguientes datos antes de emitir" ,
"blocked_description" : "La proforma {{reference}} todavía no cumple los requisitos para emitir la factura."
} ,
"update" : {
"summary_one" : "Falta {{count}} requisito para poder emitir esta proforma" ,
"summary_other" : "Faltan {{count}} requisitos para poder emitir esta proforma" ,
"saved_state_hint" : "Basado en los últimos cambios guardados." ,
"dirty_state_hint" : "Esta comprobación refleja el último estado guardado. Guarda los cambios para actualizarla." ,
"ready_title" : "Lista para emitir" ,
"ready_description" : "La proforma cumple actualmente los requisitos necesarios para convertirse en factura." ,
"loading" : "Comprobando requisitos de emisión…" ,
"unavailable_title" : "No se ha podido comprobar el estado de emisión." ,
"unavailable_description" : "Inténtalo de nuevo para revisar los requisitos pendientes."
} ,
"blockers" : {
"already_issued" : "Esta proforma ya fue emitida y no puede volver a emitirse." ,
"invalid_status" : "La proforma debe estar aprobada antes de emitirla." ,
"missing_description" : "Añade una descripción a la proforma." ,
"missing_operation_date" : "Completa la fecha de operación." ,
"incomplete_recipient" : "Completa los datos fiscales del cliente." ,
"missing_items" : "Añade al menos una línea a la proforma." ,
"missing_payment_method" : "Selecciona una forma de pago." ,
"missing_tax_regime" : "Selecciona un régimen fiscal." ,
"payment_method_unavailable" : "La forma de pago seleccionada ya no está disponible." ,
"payment_method_inactive" : "La forma de pago seleccionada está inactiva. Elige una forma de pago activa."
} ,
"blocker_details" : {
"already_issued" : {
"title" : "Ya emitida" ,
"description" : "Esta proforma ya se convirtió en factura."
} ,
"invalid_status" : {
"title" : "Estado documental" ,
"description" : "Debe estar aprobada antes de emitirla."
} ,
"missing_description" : {
"title" : "Descripción" ,
"description" : "Añade una descripción a la proforma."
} ,
"missing_operation_date" : {
"title" : "Fecha de operación" ,
"description" : "Debe indicar la fecha de operación."
} ,
"incomplete_recipient" : {
"title" : "Datos fiscales del cliente" ,
"description" : "Completa los datos fiscales del cliente."
} ,
"missing_items" : {
"title" : "Líneas de detalle" ,
"description" : "Añade al menos una línea a la proforma."
} ,
"missing_payment_method" : {
"title" : "Forma de pago" ,
"description" : "Selecciona una forma de pago."
} ,
"missing_tax_regime" : {
"title" : "Régimen fiscal" ,
"description" : "Selecciona un régimen fiscal."
} ,
"payment_method_unavailable" : {
"title" : "Forma de pago no disponible" ,
"description" : "La forma de pago seleccionada ya no está disponible."
} ,
"payment_method_inactive" : {
"title" : "Forma de pago inactiva" ,
"description" : "Selecciona una forma de pago activa."
}
}
} ,
2025-11-21 18:42:17 +00:00
"delete_proforma_dialog" : {
2026-07-29 10:43:54 +00:00
"single_title" : "Eliminar proforma" ,
"single_description" : "Se eliminará la proforma. Su referencia no se reutilizará." ,
2026-07-29 16:23:57 +00:00
"archived_single_title" : "Eliminar proforma archivada" ,
"archived_single_description" : "Se eliminará la proforma en borrador. Su referencia no se reutilizará." ,
2026-07-29 10:43:54 +00:00
"multiple_title" : "Eliminar proformas" ,
"multiple_description" : "Se eliminarán {{count}} proformas draft. Sus referencias no se reutilizarán." ,
"warning" : "Esta acción no elimina facturas emitidas ni reutiliza numeración." ,
2026-07-29 16:23:57 +00:00
"archived_warning" : "Esta acción no borra físicamente sus datos, pero dejará de estar disponible en los listados operativos." ,
2026-04-05 20:17:11 +00:00
"confirm_delete" : "Confirmar eliminación" ,
"deleting" : "Eliminando..." ,
"cancel" : "Cancelar" ,
2026-07-29 10:43:54 +00:00
"list_item" : "Proforma {{reference}}" ,
"success_title" : "Proforma eliminada" ,
"success_single_message" : "La proforma {{reference}} se ha eliminado correctamente." ,
"success_multiple_message" : "Se han eliminado {{count}} proformas correctamente." ,
"error_title" : "No se pudo eliminar la proforma" ,
"error_single_message" : "La proforma seleccionada no se ha podido eliminar." ,
"error_multiple_message" : "{{count}} proformas no se han podido eliminar." ,
"error_conflict_message" : "Solo se pueden eliminar proformas en borrador." ,
"error_not_found_message" : "La proforma ya no existe o no está disponible."
2026-04-05 20:30:01 +00:00
} ,
"change_proforma_status_dialog" : {
"title" : "Cambiar estado de la proforma" ,
"single_description" : "Selecciona el nuevo estado para la proforma {{reference}}." ,
"multiple_description" : "Selecciona el nuevo estado para {{count}} proformas seleccionadas." ,
"empty_available_statuses" : "No hay transiciones de estado disponibles para las proformas seleccionadas." ,
2026-08-06 12:03:28 +00:00
"status_explanations" : {
"draft" : "Una proforma sin terminar y pendiente de modificaciones." ,
"sent" : "Se ha enviado la proforma al cliente para su aprobación." ,
"approved" : "La proforma ha sido aprobada por el cliente y puede pasar a factura." ,
"rejected" : "La proforma ha sido rechazada por el cliente. Puede quedarse así o volver a \"borrador\"." ,
"issued" : "La proforma ya ha sido pasada a factura."
} ,
2026-04-05 20:30:01 +00:00
"cancel" : "Cancelar" ,
"confirm" : "Cambiar estado" ,
"submitting" : "Cambiando..." ,
"success_title" : "Estado actualizado correctamente" ,
"success_single_description" : "La proforma {{reference}} ha cambiado de estado correctamente." ,
"success_multiple_description" : "Se ha actualizado el estado de {{count}} proformas." ,
"error_title" : "Error al cambiar el estado" ,
"error_single_description" : "No se ha podido cambiar el estado de la proforma seleccionada." ,
"error_multiple_description" : "No se ha podido cambiar el estado de {{count}} proformas." ,
"error_unexpected_description" : "Ha ocurrido un error inesperado." ,
"legend" : {
"current" : "Estado actual" ,
"available" : "Estados disponibles" ,
"unavailable" : "Estados no disponibles"
}
2026-07-30 10:45:33 +00:00
} ,
"duplicate" : {
"success_title" : "Proforma duplicada" ,
"success_description" : "La proforma se ha duplicado correctamente." ,
"success_with_reference" : "Proforma duplicada como {{reference}}." ,
2026-08-17 09:25:34 +00:00
"payment_term_replaced_with_term" : "La proforma se ha duplicado. El plazo de pago original estaba inactivo y se ha sustituido por «{{name}}»." ,
"payment_term_replaced_without_term" : "La proforma se ha duplicado. El plazo de pago original estaba inactivo y la nueva proforma se ha creado sin plazo de pago." ,
2026-07-30 10:45:33 +00:00
"error_title" : "No se pudo duplicar la proforma" ,
"error_not_found_message" : "La proforma ya no existe o no está disponible." ,
"error_unknown_message" : "Ha ocurrido un error inesperado al duplicar la proforma."
feat: add proforma detail components and utilities
- Introduced ProformaDetailContent, ProformaDetailHeader, ProformaDetailInspector, ProformaDocumentPane, ProformaGeneralPanel components for displaying detailed proforma information.
- Created various sections including ProformaCommercialSection, ProformaContentSection, ProformaCustomerSection, ProformaDatesSection, ProformaFiscalSection, ProformaLinkedInvoiceSection, and ProformaSummarySection to organize proforma details.
- Implemented utility functions to build proforma detail actions and view models, enhancing the management of proforma states and actions.
- Added translations and improved accessibility features across components.
2026-08-05 11:17:55 +00:00
} ,
"detail" : {
"header" : {
"title" : "Proforma {{reference}}" ,
"archived_label" : "Archivada"
} ,
"document" : {
"title" : "Documento" ,
"description" : "Vista previa del PDF generado de la proforma." ,
"error" : "No se pudo cargar el PDF." ,
"error_title" : "No se pudo cargar la vista previa" ,
"loading" : "Cargando documento..." ,
"refreshing" : "Actualizando documento..." ,
"retry" : "Reintentar" ,
"empty_title" : "Documento no disponible" ,
"empty_description" : "El PDF de la proforma todavía no está disponible para mostrarse." ,
"actions" : {
"open" : "Abrir PDF" ,
"download" : "Descargar PDF" ,
"print" : "Imprimir PDF" ,
"zoom_in" : "Acercar" ,
"zoom_out" : "Alejar" ,
"zoom_select" : "Seleccionar zoom" ,
"fit" : "Ajustar"
}
} ,
2026-08-06 11:03:48 +00:00
"page_error" : {
"actions" : {
"retry" : "Reintentar" ,
"back_to_list" : "Volver al listado" ,
"go_back" : "Volver"
} ,
"notFound" : {
"title" : "Proforma no encontrada" ,
"description" : "La proforma ya no existe o no está disponible."
} ,
"forbidden" : {
"title" : "No tienes acceso a esta proforma" ,
"description" : "No dispones de permisos para consultar este documento."
} ,
"network" : {
"title" : "No se pudo conectar con el servidor" ,
"description" : "Comprueba tu conexión e inténtalo de nuevo."
} ,
"timeout" : {
"title" : "La carga está tardando demasiado" ,
"description" : "El servidor no respondió dentro del tiempo esperado."
} ,
"server" : {
"title" : "No se pudo cargar la proforma" ,
"description" : "Se produjo un error interno mientras se recuperaba la proforma."
} ,
"unavailable" : {
"title" : "Servicio temporalmente no disponible" ,
"description" : "El servicio de proformas no está disponible en este momento."
} ,
"unknown" : {
"title" : "No se pudo cargar la proforma" ,
"description" : "Ha ocurrido un error inesperado al cargar la proforma."
}
} ,
feat: add proforma detail components and utilities
- Introduced ProformaDetailContent, ProformaDetailHeader, ProformaDetailInspector, ProformaDocumentPane, ProformaGeneralPanel components for displaying detailed proforma information.
- Created various sections including ProformaCommercialSection, ProformaContentSection, ProformaCustomerSection, ProformaDatesSection, ProformaFiscalSection, ProformaLinkedInvoiceSection, and ProformaSummarySection to organize proforma details.
- Implemented utility functions to build proforma detail actions and view models, enhancing the management of proforma states and actions.
- Added translations and improved accessibility features across components.
2026-08-05 11:17:55 +00:00
"regions" : {
"document" : "Documento" ,
"details" : "Detalles"
} ,
"customer" : {
"unknown" : "Cliente sin nombre"
} ,
"sections" : {
"summary" : "Resumen" ,
"customer" : "Cliente" ,
"dates" : "Fechas" ,
"commercial" : "Condiciones comerciales" ,
"fiscal" : "Fiscalidad" ,
"content" : "Descripción y notas" ,
"linked_invoice" : "Documento relacionado"
} ,
"section_descriptions" : {
"summary" : "Datos operativos principales de la proforma." ,
"customer" : "" ,
"dates" : "Fechas disponibles en el contrato actual del detalle." ,
"commercial" : "Método, plazo y referencias comerciales configuradas." ,
"fiscal" : "Resumen fiscal y desglose preparado desde el ViewModel." ,
"content" : "Contenido textual asociado a la proforma." ,
"linked_invoice" : "Estado actual de la relación Proforma -> Factura."
} ,
"fields" : {
"total" : "Total" ,
"reference" : "Número de proforma" ,
"status" : "Estado" ,
"currency" : "Moneda" ,
"lines" : "Líneas" ,
"units" : "Unidades" ,
"global_discount" : "Descuento global" ,
"customer_tin" : "NIF" ,
"address" : "Dirección" ,
"proforma_date" : "Fecha de proforma" ,
"operation_date" : "Fecha de operación" ,
"payment_method" : "Método de pago" ,
"payment_term" : "Plazo de pago" ,
"language" : "Idioma" ,
"internal_reference" : "Referencia interna" ,
"tax_regime" : "Régimen fiscal" ,
"tax_mode" : "Modo fiscal" ,
"subtotal" : "Subtotal" ,
"discount" : "Descuento" ,
"taxable_base" : "Base imponible" ,
"tax" : "Impuesto" ,
"rec" : "Recargo de equivalencia" ,
"retention" : "Retención" ,
"tax_breakdown" : "Desglose fiscal" ,
"description" : "Descripción" ,
"notes" : "Notas" ,
"linked_invoice_id" : "Identificador de factura vinculada"
} ,
"empty" : {
"no_address" : "Sin dirección registrada." ,
"not_available" : "—" ,
"no_description" : "Sin descripción." ,
"no_notes" : "Sin notas."
} ,
"actions" : {
"open_customer" : "Ver cliente" ,
"disabled_reasons" : {
"edit_archived" : "Las proformas archivadas deben desarchivarse antes de editarse." ,
"status_archived" : "Desarchiva la proforma para poder cambiar su estado."
}
} ,
"fiscal" : {
"unknown_tax_code" : "Impuesto" ,
"tax_mode" : {
"single" : "Impuesto único" ,
"perLine" : "Impuestos por línea"
}
} ,
"linked_invoice" : {
"states" : {
"not-issued" : {
"title" : "Pendiente de emitir" ,
"description" : "La proforma todavía no se ha convertido en factura."
} ,
"ready-to-issue" : {
"title" : "Lista para emitir" ,
"description" : "Puede convertirse en factura desde la cabecera."
} ,
"issued-without-link" : {
"title" : "Emitida" ,
"description" : "No se ha recibido una referencia a la factura vinculada."
} ,
"issued-linked-without-detail-route" : {
"title" : "Factura emitida" ,
"description" : "La factura vinculada existe, pero su detalle individual todavía no está disponible en esta aplicación."
}
}
}
2025-11-21 18:42:17 +00:00
}
} ,
2025-09-29 18:22:59 +00:00
"pages" : {
2025-11-13 11:49:36 +00:00
"proformas" : {
"title" : "Proformas" ,
"description" : "Gestiona tus proformas" ,
"list" : {
"title" : "Proformas" ,
2026-07-29 20:40:38 +00:00
"description" : "Lista las proformas no archivadas ni eliminadas" ,
"loadErrorTitle" : "No se pudo cargar el listado de proformas" ,
2026-08-03 13:43:08 +00:00
"actions" : {
"view" : "Ver" ,
"edit" : "Editar" ,
"change_status" : "Cambiar estado" ,
"issue" : "Emitir factura" ,
"duplicate" : "Duplicar" ,
2026-09-01 09:36:20 +00:00
"create_recurring" : "Crear recurrencia desde esta proforma" ,
2026-08-03 13:43:08 +00:00
"archive" : "Archivar" ,
"unarchive" : "Desarchivar" ,
"download_pdf" : "Descargar PDF" ,
"delete" : "Eliminar" ,
2026-08-06 11:03:48 +00:00
"retry" : "Reintentar" ,
"retrying" : "Reintentando…" ,
"go_home" : "Volver al inicio" ,
2026-08-03 13:43:08 +00:00
"view_linked_invoice" : "Ver factura vinculada" ,
"disabled_reasons" : {
"archived_scope" : "No se puede ejecutar desde el listado de proformas archivadas." ,
"deleted_scope" : "No se puede ejecutar desde el listado de proformas eliminadas." ,
"archived_only" : "Solo está disponible en proformas archivadas." ,
"edit_issued" : "No se puede editar una proforma emitida." ,
"status_issued" : "Una proforma emitida no admite cambios de estado." ,
"linked_invoice_unavailable" : "Solo está disponible cuando la proforma emitida tiene una factura vinculada." ,
"operation_in_progress" : "La operación está en curso."
}
} ,
2026-07-29 20:40:38 +00:00
"empty" : {
"normal" : "No hay proformas." ,
"archived" : "No hay proformas archivadas." ,
"deleted" : "No hay proformas eliminadas."
} ,
2026-08-06 11:03:48 +00:00
"errors" : {
"refresh" : {
"title" : "No se pudo actualizar el listado" ,
"message" : "Se muestran los últimos datos disponibles mientras vuelves a intentarlo."
} ,
"page" : {
"forbidden" : {
"title" : "No tienes acceso al listado de proformas" ,
"description" : "No dispones de permisos para consultar este listado."
} ,
"network" : {
"title" : "No se pudo conectar con el servidor" ,
"description" : "Comprueba tu conexión e inténtalo de nuevo."
} ,
"timeout" : {
"title" : "La carga está tardando demasiado" ,
"description" : "El servidor no respondió dentro del tiempo esperado."
} ,
"server" : {
"title" : "No se pudo cargar el listado de proformas" ,
"description" : "Se produjo un error interno al recuperar las proformas."
} ,
"unavailable" : {
"title" : "Servicio temporalmente no disponible" ,
"description" : "El servicio de proformas no está disponible en este momento."
} ,
"unknown" : {
"title" : "No se pudo cargar el listado de proformas" ,
"description" : "Ha ocurrido un error inesperado al cargar el listado."
}
}
} ,
2026-07-29 20:24:53 +00:00
"filters" : {
2026-08-31 18:51:27 +00:00
"date" : {
"label" : "Filtrar por fecha de proforma" ,
"options" : {
"last7Days" : "Últimos 7 días" ,
"currentMonth" : "Mes actual" ,
"last3Months" : "Últimos 3 meses" ,
"currentYear" : "Año actual" ,
"all" : "Todas"
}
} ,
2026-07-29 20:24:53 +00:00
"status" : {
"label" : "Estado"
}
} ,
2026-05-19 15:23:10 +00:00
"columns" : {
2026-07-10 11:59:44 +00:00
"proforma_reference" : "Num." ,
2025-11-13 11:49:36 +00:00
"series" : "Serie" ,
2026-08-06 11:39:20 +00:00
"reference" : "Referencia" ,
2025-11-13 11:49:36 +00:00
"status" : "Estado" ,
2026-07-10 11:59:44 +00:00
"proforma_date" : "Fecha" ,
2025-11-13 11:49:36 +00:00
"operation_date" : "Fecha de operación" ,
2025-11-16 19:30:11 +00:00
"recipient" : "Cliente" ,
2025-11-13 11:49:36 +00:00
"recipient_tin" : "NIF/CIF" ,
"recipient_name" : "Cliente" ,
"recipient_street" : "Dirección" ,
"recipient_city" : "Ciudad" ,
"recipient_province" : "Provincia" ,
"recipient_postal_code" : "Código postal" ,
"recipient_country" : "País" ,
2025-11-16 19:30:11 +00:00
"subtotal_amount" : "Subtotal" ,
2026-08-06 11:39:20 +00:00
"discount_amount" : "Dtos." ,
"taxable_amount" : "Base imp." ,
2025-11-16 19:30:11 +00:00
"taxes_amount" : "Impuestos" ,
2026-08-06 11:39:20 +00:00
"total_amount" : "Total"
2025-11-13 11:49:36 +00:00
}
} ,
2026-07-29 20:40:38 +00:00
"archived" : {
"title" : "Proformas archivadas" ,
"description" : "Consulta las proformas archivadas sin mezclar el listado operativo"
} ,
"deleted" : {
"title" : "Proformas eliminadas" ,
"description" : "Consulta las proformas eliminadas en modo solo lectura"
} ,
2025-11-13 11:49:36 +00:00
"create" : {
"title" : "Nueva proforma" ,
"description" : "Crear una nueva proforma" ,
"back_to_list" : "Volver al listado"
} ,
2026-04-10 08:05:45 +00:00
"update" : {
2025-11-13 11:49:36 +00:00
"title" : "Editar proforma" ,
2026-04-10 08:05:45 +00:00
"description" : "Editar la proforma seleccionada" ,
"load_error.message" : "Inténtalo de nuevo más tarde" ,
"load_error.title" : "No se pudo cargar la proforma" ,
"not_found_msg" : "Revisa el identificador o vuelve al listado" ,
"not_found_title" : "Proforma no encontrada" ,
"error_msg" : "Revisa los datos e inténtalo de nuevo." ,
2026-08-06 11:03:48 +00:00
"error_title" : "No se pudo guardar los cambios" ,
"page_error" : {
"actions" : {
"retry" : "Reintentar" ,
"retrying" : "Reintentando…" ,
"go_home" : "Volver al inicio" ,
"back_to_list" : "Volver al listado"
} ,
"notFound" : {
"title" : "Proforma no encontrada" ,
"description" : "La proforma ya no existe o no está disponible."
} ,
"forbidden" : {
"title" : "No tienes acceso a esta proforma" ,
"description" : "No dispones de permisos para editar este documento."
} ,
"network" : {
"title" : "No se pudo conectar con el servidor" ,
"description" : "Comprueba tu conexión e inténtalo de nuevo."
} ,
"timeout" : {
"title" : "La carga está tardando demasiado" ,
"description" : "El servidor no respondió dentro del tiempo esperado."
} ,
"server" : {
"title" : "No se pudo cargar la proforma" ,
"description" : "Se produjo un error interno al recuperar la proforma."
} ,
"unavailable" : {
"title" : "Servicio temporalmente no disponible" ,
"description" : "El servicio de proformas no está disponible en este momento."
} ,
"unknown" : {
"title" : "No se pudo cargar la proforma" ,
"description" : "Ha ocurrido un error inesperado al cargar la proforma."
} ,
"missing_entity" : {
"title" : "No se pudo cargar la proforma" ,
"description" : "La respuesta recibida no contiene una proforma válida."
}
2026-08-17 09:25:34 +00:00
} ,
"customer_change" : {
"dialog" : {
"compatible_title" : "Cambiar cliente" ,
"incompatible_title" : "No es posible cambiar de cliente" ,
"loading" : "Comprobando compatibilidad del cliente..." ,
"error" : "No se pudo cargar la información del cliente seleccionado." ,
"incompatible_description" : "El cliente seleccionado no es compatible con esta proforma." ,
"changes_title" : "La proforma se actualizará con estos cambios:" ,
"fiscal_title" : "También se adaptará la configuración fiscal y se recalcularán impuestos y totales." ,
"preserved_title" : "Se conservarán estos valores porque fueron modificados manualmente:" ,
"cancel" : "Cancelar" ,
"applying" : "Aplicando cambios..." ,
"confirm" : "Confirmar cambio"
} ,
"blockers" : {
"currency" : "Moneda" ,
"language" : "Idioma"
} ,
"fields" : {
"recipient" : "Destinatario" ,
"paymentTermId" : "Plazo de pago" ,
"paymentMethodId" : "Método de pago" ,
"taxRegimeCode" : "Régimen fiscal" ,
"usesEquivalenceSurcharge" : "Recargo de equivalencia" ,
"usesRetention" : "Retención"
} ,
"values" : {
"empty" : "Sin valor" ,
"enabled" : "Sí" ,
"disabled" : "No"
} ,
"feedback" : {
"error_title" : "No se pudo cambiar el cliente" ,
"apply_error" : "No se pudo adaptar la proforma al nuevo cliente."
}
2026-08-18 21:03:04 +00:00
} ,
"header" : {
"help" : {
"aria_label" : "Información y estado de emisión de la proforma" ,
"aria_label_with_blockers_one" : "Información de la proforma. {{count}} requisito pendiente de emisión." ,
"aria_label_with_blockers_other" : "Información de la proforma. {{count}} requisitos pendientes de emisión." ,
"title" : "Información de la proforma" ,
"issuance_section_title" : "Estado para emisión" ,
"fiscal_section_title" : "Sobre las proformas" ,
"description" : "Esta proforma no tiene validez fiscal. Puedes convertirla en factura cuando sea aceptada por el cliente."
}
} ,
"items" : {
"title" : "Detalle de la proforma" ,
"description" : "Gestiona las líneas de productos o servicios de esta proforma."
2026-08-06 11:03:48 +00:00
}
2025-11-13 11:49:36 +00:00
} ,
"delete" : {
"title" : "Eliminar proforma" ,
"description" : "Eliminar la proforma seleccionada"
} ,
2026-07-29 10:43:54 +00:00
"delete.error_title" : "No se pudo eliminar la proforma" ,
feat: add proforma detail components and utilities
- Introduced ProformaDetailContent, ProformaDetailHeader, ProformaDetailInspector, ProformaDocumentPane, ProformaGeneralPanel components for displaying detailed proforma information.
- Created various sections including ProformaCommercialSection, ProformaContentSection, ProformaCustomerSection, ProformaDatesSection, ProformaFiscalSection, ProformaLinkedInvoiceSection, and ProformaSummarySection to organize proforma details.
- Implemented utility functions to build proforma detail actions and view models, enhancing the management of proforma states and actions.
- Added translations and improved accessibility features across components.
2026-08-05 11:17:55 +00:00
"delete.error_unexpected_message" : "Ha ocurrido un error inesperado al eliminar la proforma." ,
2025-11-13 11:49:36 +00:00
"view" : {
"title" : "Ver proforma" ,
"description" : "Ver los detalles de la proforma seleccionada"
2025-09-29 18:22:59 +00:00
}
2025-11-16 21:11:46 +00:00
} ,
"issued_invoices" : {
"title" : "Facturas de cliente" ,
"description" : "Gestiona tus facturas de cliente" ,
"list" : {
"title" : "Facturas de cliente" ,
"description" : "Lista todas las facturas de cliente" ,
2026-08-06 11:03:48 +00:00
"search_placeholder" : "Buscar por número, cliente o NIF/CIF..." ,
"actions" : {
2026-08-11 15:25:17 +00:00
"view" : "Ver" ,
2026-08-06 11:03:48 +00:00
"retry" : "Reintentar" ,
"retrying" : "Reintentando…" ,
"go_home" : "Volver al inicio"
} ,
"errors" : {
"refresh" : {
"title" : "No se pudo actualizar el listado" ,
"message" : "Se muestran los últimos datos disponibles mientras vuelves a intentarlo."
} ,
"page" : {
"forbidden" : {
"title" : "No tienes acceso al listado de facturas" ,
"description" : "No dispones de permisos para consultar este listado."
} ,
"network" : {
"title" : "No se pudo conectar con el servidor" ,
"description" : "Comprueba tu conexión e inténtalo de nuevo."
} ,
"timeout" : {
"title" : "La carga está tardando demasiado" ,
"description" : "El servidor no respondió dentro del tiempo esperado."
} ,
"server" : {
"title" : "No se pudo cargar el listado de facturas" ,
"description" : "Se produjo un error interno al recuperar las facturas."
} ,
"unavailable" : {
"title" : "Servicio temporalmente no disponible" ,
"description" : "El servicio de facturación no está disponible en este momento."
} ,
"unknown" : {
"title" : "No se pudo cargar el listado de facturas" ,
"description" : "Ha ocurrido un error inesperado al cargar el listado."
}
}
} ,
2025-11-16 21:11:46 +00:00
"grid_columns" : {
2026-08-19 10:04:31 +00:00
"invoice_reference" : "Num." ,
2025-11-17 17:20:18 +00:00
"verifactu_status" : "Estado" ,
2025-11-22 17:24:35 +00:00
"verifactu_qr_code" : "QR" ,
2025-11-17 17:20:18 +00:00
"verifactu_url" : "URL" ,
2025-11-16 21:11:46 +00:00
"invoice_number" : "Nº factura" ,
"series" : "Serie" ,
2026-08-19 10:04:31 +00:00
"reference" : "Referencia" ,
2025-11-17 17:20:18 +00:00
"invoice_date" : "Fecha de factura" ,
2025-11-16 21:11:46 +00:00
"operation_date" : "Fecha de operación" ,
"recipient" : "Cliente" ,
"recipient_tin" : "NIF/CIF" ,
"recipient_name" : "Cliente" ,
"recipient_street" : "Dirección" ,
"recipient_city" : "Ciudad" ,
"recipient_province" : "Provincia" ,
"recipient_postal_code" : "Código postal" ,
"recipient_country" : "País" ,
"subtotal_amount" : "Subtotal" ,
"discount_amount" : "Descuentos" ,
"taxes_amount" : "Impuestos" ,
"total_amount" : "Importe total"
}
2026-08-11 15:25:17 +00:00
} ,
"detail" : {
"title" : "Factura de cliente" ,
"description" : "Consulta el detalle de la factura emitida" ,
"header" : {
"title" : "Factura {{reference}}"
} ,
"regions" : {
"details" : "Detalles"
} ,
"document" : {
"title" : "Documento" ,
"description" : "Vista previa del PDF generado de la factura." ,
"error" : "No se pudo cargar el PDF." ,
"error_title" : "No se pudo cargar la vista previa" ,
"loading" : "Cargando documento..." ,
"refreshing" : "Actualizando documento..." ,
"retry" : "Reintentar" ,
"empty_title" : "Documento no disponible" ,
"empty_description" : "El PDF de la factura todavía no está disponible para mostrarse." ,
"actions" : {
"open" : "Abrir PDF" ,
"download" : "Descargar PDF" ,
"print" : "Imprimir PDF" ,
"zoom_in" : "Acercar" ,
"zoom_out" : "Alejar" ,
"zoom_select" : "Seleccionar zoom" ,
"fit" : "Ajustar"
}
} ,
"page_error" : {
"actions" : {
"retry" : "Reintentar" ,
"back_to_list" : "Volver al listado"
} ,
"notFound" : {
"title" : "Factura no encontrada" ,
"description" : "La factura ya no existe o no está disponible."
} ,
"forbidden" : {
"title" : "No tienes acceso a esta factura" ,
"description" : "No dispones de permisos para consultar este documento."
} ,
"network" : {
"title" : "No se pudo conectar con el servidor" ,
"description" : "Comprueba tu conexión e inténtalo de nuevo."
} ,
"timeout" : {
"title" : "La carga está tardando demasiado" ,
"description" : "El servidor no respondió dentro del tiempo esperado."
} ,
"server" : {
"title" : "No se pudo cargar la factura" ,
"description" : "Se produjo un error interno mientras se recuperaba la factura."
} ,
"unavailable" : {
"title" : "Servicio temporalmente no disponible" ,
"description" : "El servicio de facturas no está disponible en este momento."
} ,
"unknown" : {
"title" : "No se pudo cargar la factura" ,
"description" : "Ha ocurrido un error inesperado al cargar la factura."
} ,
"inconsistent" : {
"description" : "La respuesta recibida no contiene una factura válida."
}
} ,
"sections" : {
2026-08-19 10:04:31 +00:00
"summary" : "Resumen" ,
2026-08-11 15:25:17 +00:00
"customer" : "Cliente" ,
2026-08-19 10:04:31 +00:00
"document" : "Datos del documento" ,
2026-08-11 15:25:17 +00:00
"commercial" : "Condiciones comerciales" ,
"fiscal" : "Fiscalidad" ,
2026-08-19 10:04:31 +00:00
"items" : "Líneas" ,
"taxes" : "Impuestos" ,
"totals" : "Totales" ,
2026-08-11 15:25:17 +00:00
"verifactu" : "VeriFactu" ,
"linked_proforma" : "Proforma vinculada" ,
"content" : "Contenido"
} ,
2026-08-19 10:04:31 +00:00
"section_descriptions" : {
"summary" : "Identidad y datos principales del documento emitido." ,
"customer" : "Snapshot histórico del destinatario materializado en la factura." ,
"document" : "Metadatos del documento y navegación a la proforma origen cuando existe." ,
"commercial" : "Forma, plazo y reglas de pago preservadas en el snapshot." ,
"fiscal" : "Datos fiscales históricos disponibles en la factura emitida." ,
"items" : "Líneas materializadas del documento, sin recálculo en frontend." ,
"taxes" : "Desglose fiscal materializado recibido desde la API." ,
"totals" : "Totales históricos de la factura emitida." ,
"verifactu" : "Estado actual de VeriFactu según el bloque singular disponible hoy."
} ,
2026-08-11 15:25:17 +00:00
"fields" : {
"invoice_reference" : "Número de factura" ,
2026-08-19 10:04:31 +00:00
"invoice_number" : "Número correlativo" ,
2026-08-11 15:25:17 +00:00
"series" : "Serie" ,
"status" : "Estado" ,
"invoice_date" : "Fecha de factura" ,
"operation_date" : "Fecha de operación" ,
"line_count" : "Líneas" ,
"total_units" : "Unidades" ,
2026-08-19 10:04:31 +00:00
"currency" : "Moneda" ,
2026-08-11 15:25:17 +00:00
"total_amount" : "Importe total" ,
"customer_name" : "Cliente" ,
"customer_tin" : "NIF" ,
"address" : "Dirección" ,
"payment_method" : "Método de pago" ,
2026-08-19 10:04:31 +00:00
"payment_method_description" : "Descripción del método de pago" ,
2026-08-17 09:25:34 +00:00
"payment_term" : "Plazo de pago" ,
2026-08-19 10:04:31 +00:00
"payment_term_description" : "Descripción del plazo de pago" ,
"payment_term_due_rules" : "Reglas de vencimiento" ,
2026-08-11 15:25:17 +00:00
"language" : "Idioma" ,
"internal_reference" : "Referencia interna" ,
"tax_regime" : "Régimen fiscal" ,
2026-08-19 10:04:31 +00:00
"fiscal_tax_regime" : "Régimen fiscal histórico" ,
"operation_qualification" : "Calificación de operación" ,
"exemption_reason" : "Motivo de exención" ,
"items_discount_amount" : "Descuento de líneas" ,
"global_discount_amount" : "Descuento global" ,
2026-08-11 15:25:17 +00:00
"subtotal_amount" : "Subtotal" ,
"discount_amount" : "Descuento" ,
"taxable_amount" : "Base imponible" ,
"tax_amount" : "Impuestos" ,
2026-08-19 10:04:31 +00:00
"taxes_amount" : "Total impuestos" ,
2026-08-11 15:25:17 +00:00
"rec_amount" : "Recargo de equivalencia" ,
"retention_amount" : "Retención" ,
"tax_breakdown" : "Desglose fiscal" ,
"verifactu_status" : "Estado VeriFactu" ,
"verifactu_url" : "URL VeriFactu" ,
2026-08-19 10:04:31 +00:00
"verifactu_qr" : "QR VeriFactu" ,
2026-08-11 15:25:17 +00:00
"linked_proforma" : "Proforma vinculada" ,
"description" : "Descripción" ,
2026-08-19 10:04:31 +00:00
"notes" : "Notas" ,
"quantity" : "Cantidad" ,
"unit_amount" : "Precio unitario" ,
"item_discount" : "Descuento de línea" ,
"item_taxes" : "Impuestos de línea"
} ,
"empty" : {
"not_available" : "—" ,
"no_address" : "Sin dirección registrada." ,
"no_description" : "Sin descripción." ,
"no_taxes" : "Sin impuestos informados."
2026-08-11 15:25:17 +00:00
} ,
"actions" : {
"back" : "Volver" ,
"open_linked_proforma" : "Abrir proforma vinculada" ,
"operation_in_progress" : "La operación está en curso."
} ,
2026-08-19 10:04:31 +00:00
"payment_term" : {
"due_days" : "{{days}} días"
} ,
"items" : {
"position" : "Línea {{position}}"
} ,
"verifactu" : {
"empty" : "Esta factura no tiene un bloque VeriFactu disponible en el detalle actual." ,
"qr_alt" : "Código QR de VeriFactu" ,
2026-08-20 08:12:09 +00:00
"available" : "Disponible"
2026-08-19 10:04:31 +00:00
} ,
2026-08-11 15:25:17 +00:00
"fiscal" : {
"unknown_tax_code" : "Impuesto"
}
2025-11-16 21:11:46 +00:00
}
2026-08-17 09:25:34 +00:00
} ,
"create" : {
"initial_info" : {
"title" : "Información inicial" ,
"proforma_date" : {
"label" : "Fecha" ,
"placeholder" : "Selecciona una fecha"
} ,
"proforma_series" : {
"label" : "Serie de esta proforma" ,
"loading" : "Cargando series..." ,
"placeholder" : "Selecciona una serie" ,
"empty" : "Sin serie"
} ,
"invoice_series" : {
"label" : "Serie de la factura" ,
"loading" : "Cargando series..." ,
"placeholder" : "Automática"
}
}
2025-09-29 18:22:59 +00:00
}
} ,
"form_groups" : {
2026-04-10 08:05:45 +00:00
"proformas" : {
"customer" : {
"title" : "Cliente" ,
"description" : "Selecciona el cliente para esta proforma"
} ,
"items" : {
"title" : "Detalles de la proforma" ,
"description" : ""
} ,
"basic_info" : {
"title" : "Información de la proforma" ,
"description" : "Información básica de la proforma"
} ,
"totals" : {
"title" : "Totales de la proforma" ,
"description" : "Desglose de los importes de la proforma con descuentos e impuestos."
} ,
"preferences" : {
"title" : "Preferencias" ,
"description" : "Configuraciones adicionales de la proforma"
}
2025-09-29 18:22:59 +00:00
}
} ,
"form_fields" : {
2026-04-10 08:05:45 +00:00
"proformas" : {
"invoice_number" : {
"label" : "Número de proforma" ,
2025-09-29 18:22:59 +00:00
"placeholder" : "" ,
"description" : ""
} ,
2026-07-28 16:04:57 +00:00
"proforma_date" : {
"label" : "Fecha de la proforma" ,
2026-04-10 08:05:45 +00:00
"placeholder" : "Selecciona una fecha" ,
"description" : "Fecha de emisión de la proforma"
} ,
"series" : {
"label" : "Serie" ,
2025-09-29 18:22:59 +00:00
"placeholder" : "" ,
"description" : ""
} ,
2026-04-10 08:05:45 +00:00
"operation_date" : {
"label" : "Fecha de operación" ,
"placeholder" : "Selecciona una fecha" ,
"description" : "Fecha de la operación de la proforma"
2025-09-29 18:22:59 +00:00
} ,
2026-04-10 08:05:45 +00:00
"reference" : {
"label" : "Referencia" ,
"placeholder" : "Referencia de la proforma" ,
"description" : "Referencia de la proforma"
2025-09-29 18:22:59 +00:00
} ,
2026-04-10 08:05:45 +00:00
"description" : {
"label" : "Descripción" ,
"placeholder" : "Descripción de la proforma" ,
"description" : "Descripción general de la proforma"
2025-09-29 18:22:59 +00:00
} ,
2026-04-10 08:05:45 +00:00
"subtotal_amount" : {
2025-11-11 11:22:20 +00:00
"label" : "Subtotal" ,
"placeholder" : "" ,
2026-04-10 08:05:45 +00:00
"desc" : "Subtotal de la proforma"
2025-11-11 11:22:20 +00:00
} ,
2026-04-10 08:05:45 +00:00
"discount" : {
"label" : "Descuento (%)" ,
2025-09-29 18:22:59 +00:00
"placeholder" : "" ,
2026-04-10 08:05:45 +00:00
"desc" : "Porcentaje de descuento"
2025-09-29 18:22:59 +00:00
} ,
2026-04-10 08:05:45 +00:00
"discount_amount" : {
"label" : "Importe del descuento" ,
2025-09-29 18:22:59 +00:00
"placeholder" : "" ,
2026-04-10 08:05:45 +00:00
"desc" : "Importe del descuento porcentual"
2025-09-29 18:22:59 +00:00
} ,
2025-10-07 08:17:35 +00:00
"total_amount" : {
2025-09-29 18:22:59 +00:00
"label" : "Precio total" ,
"placeholder" : "" ,
2026-04-10 08:05:45 +00:00
"desc" : "Precio total de la proforma"
} ,
"notes" : {
"label" : "Notas" ,
"placeholder" : "Notas adicionales sobre la proforma" ,
"description" : "Notas adicionales que se pueden incluir en la proforma"
} ,
2026-08-17 09:25:34 +00:00
"payment_term" : {
"label" : "Plazo de pago" ,
"placeholder" : "Selecciona un plazo de pago" ,
"loading" : "Cargando plazos..." ,
"clear_label" : "Sin plazo de pago" ,
"inactive" : "Inactivo"
} ,
2026-04-10 08:05:45 +00:00
"item" : {
"quantity" : {
"label" : "Cantidad" ,
"placeholder" : "" ,
"description" : ""
} ,
"description" : {
"label" : "Descripción" ,
"placeholder" : "" ,
"description" : ""
} ,
"unit_amount" : {
"label" : "Precio unitario" ,
"placeholder" : "" ,
"description" : "Precio unitario del producto"
} ,
"discount_percentage" : {
"label" : "Dto (%)" ,
"placeholder" : "" ,
"description" : "Porcentaje de descuento"
} ,
"discount_amount" : {
"label" : "Importe del descuento" ,
"placeholder" : "" ,
"description" : "Importe del descuento porcentual"
} ,
"taxable_amount" : {
"label" : "Subtotal" ,
"placeholder" : "" ,
"description" : ""
} ,
"tax_codes" : {
"label" : "Impuestos" ,
"placeholder" : "" ,
"description" : "Impuestos"
} ,
"taxes_amount" : {
"label" : "Importe impuestos" ,
"placeholder" : "" ,
"description" : "Importe porcentual de los impuestos"
} ,
"total_amount" : {
"label" : "Precio total" ,
"placeholder" : "" ,
"description" : "Precio total con descuento porcentual"
}
2025-09-29 18:22:59 +00:00
}
}
} ,
2025-07-16 15:47:45 +00:00
"components" : {
2025-10-16 11:18:55 +00:00
"datatable" : {
"actions" : "Acciones"
} ,
2025-07-16 15:47:45 +00:00
"customer_invoice_taxes_multi_select" : {
"label" : "Impuestos" ,
2025-09-29 18:22:59 +00:00
"placeholder" : "Selecciona impuestos" ,
2025-11-13 11:49:36 +00:00
"description" : "Selecciona los impuestos a aplicar a los artículos de la proforma" ,
2025-09-29 18:22:59 +00:00
"invalid_tax_selection" : "Selección de impuestos no válida. Por favor, selecciona un impuesto válido."
2025-10-07 08:17:35 +00:00
} ,
"hover_card_totals_summary" : {
"label" : "Desglose del importe" ,
"fields" : {
"subtotal_amount" : "Subtotal" ,
"discount_percentage" : "Descuento" ,
"taxable_amount" : "Importe base" ,
"total_amount" : "Total"
}
2025-07-16 15:47:45 +00:00
}
2026-08-12 11:31:31 +00:00
} ,
"settings" : {
"verifactu" : {
"title" : "VeriFactu" ,
"description" : "Configura cómo se aplica VeriFactu a la empresa activa." ,
"initial_mode_hint" : "Selecciona la situación de la empresa para completar la configuración inicial." ,
"status" : {
"title" : "Situación" ,
"label" : "Situación de la empresa" ,
"description" : "Define si la empresa está exenta, obligada sin VeriFactu o obligada con VeriFactu." ,
"help" : "Este estado describe la situación empresarial frente al sistema VeriFactu." ,
"exempt" : "Exenta o no aplicable" ,
"obligated_without_verifactu" : "Obligada sin VeriFactu" ,
"obligated_with_verifactu" : "Obligada con VeriFactu"
} ,
"configuration" : {
"title" : "Configuración VeriFactu" ,
"description" : "Muestra solo los campos aplicables al estado seleccionado."
} ,
"exemption_reason" : {
"unavailable" : "El catálogo backend de motivos de exención todavía no está disponible en esta versión. Puedes guardar un detalle libre dejando el código vacío."
} ,
"exemption_detail" : {
"label" : "Detalle de exención" ,
"description" : "Detalle libre para documentar el motivo de exención cuando aplique." ,
"placeholder" : "Describe el motivo de exención"
} ,
"effective_at" : {
"label" : "Fecha efectiva" ,
"description" : "Fecha civil a partir de la cual la empresa opera con VeriFactu." ,
"placeholder" : "Selecciona una fecha"
} ,
"auto_renew" : {
"label" : "Renovación automática" ,
"description" : "Solo aplica cuando la empresa opera con VeriFactu." ,
"placeholder" : "Selecciona un modo" ,
"enabled" : "Activada" ,
"disabled" : "Desactivada"
} ,
"defaults" : {
"title" : "Valores por defecto" ,
"description" : "Solo se muestran los defaults fiscales con soporte backend consolidado en esta versión." ,
"pending_catalogs" : "Los catálogos de calificación de operación y motivo de exención todavía no están disponibles en backend, por lo que no se muestran como controles editables en esta V1." ,
"tax_regime" : {
"label" : "Régimen fiscal" ,
"description" : "Default de clasificación fiscal para nuevas operaciones cuando no exista un valor más específico." ,
"placeholder" : "Selecciona un régimen fiscal"
}
} ,
"actions" : {
"save" : "Guardar" ,
"saving" : "Guardando..." ,
"reset" : "Restaurar"
} ,
"feedback" : {
"idle" : "Formulario listo." ,
"saving" : "Guardando configuración de VeriFactu." ,
"no_changes" : {
"title" : "Sin cambios" ,
"message" : "No has realizado ningún cambio."
} ,
"success" : {
"title" : "Configuración guardada" ,
"message" : "Los cambios de VeriFactu se han guardado correctamente."
} ,
"validation" : {
"title" : "Revisa los campos" ,
"message" : "Hay errores de validación en el formulario."
} ,
"error" : {
"title" : "No se pudo guardar la configuración" ,
"message" : "Revisa los datos e inténtalo de nuevo."
}
} ,
"page_error" : {
"actions" : {
"retry" : "Reintentar" ,
"retrying" : "Reintentando..."
} ,
"forbidden" : {
"title" : "No tienes acceso a esta configuración" ,
"description" : "No dispones de permisos para consultar la configuración VeriFactu de la empresa activa."
} ,
"notFound" : {
"title" : "Configuración no disponible" ,
"description" : "La configuración solicitada no está disponible."
} ,
"network" : {
"title" : "No se pudo conectar con el servidor" ,
"description" : "Comprueba tu conexión e inténtalo de nuevo."
} ,
"timeout" : {
"title" : "La carga está tardando demasiado" ,
"description" : "El servidor no respondió dentro del tiempo esperado."
} ,
"server" : {
"title" : "No se pudo cargar la configuración" ,
"description" : "Se produjo un error interno al recuperar la configuración VeriFactu."
} ,
"unavailable" : {
"title" : "Servicio temporalmente no disponible" ,
"description" : "El servicio de VeriFactu no está disponible en este momento."
} ,
"unknown" : {
"title" : "No se pudo cargar la configuración" ,
"description" : "Ha ocurrido un error inesperado al cargar la configuración VeriFactu."
} ,
"missing_entity" : {
"title" : "No se pudo cargar la configuración" ,
"description" : "La respuesta recibida no contiene un perfil VeriFactu válido."
}
}
}
2025-05-17 19:12:01 +00:00
}
2026-08-20 08:12:09 +00:00
}