feat: i18n, language switcher fix, DataTable improvements, blade translations

- Translation system: lang/es/ PHP files (auth, validation, pagination, passwords)
- Rappasoft vendor translations published (lang/vendor/livewire-tables/es/)
- JSON files synced to 391 keys (EN + ES, full parity)
- APP_LOCALE changed to 'es', users.locale column default changed to 'es'
- Language switcher fixed: JS event + window.location.reload() avoids /livewire/update redirect
- SetLocale middleware fallback uses config('app.locale') instead of hardcoded 'en'
- setSortingPillsEnabled(false) on ProjectTable, CompanyTable, UserTable
- Translated 17 blade views: project-map, template-manager, layer-manager,
  company-management, phase-list, media-manager, reports-dashboard,
  client-projects, layer-upload, project-form, project-map-editor-tab,
  admin/users, projects/media, projects/templates, layouts/client
- Navigation 'Empresas' link uses __('Companies')
- Fixed typo key 'Fases and layers' -> 'Phases and layers'

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-16 18:05:53 +02:00
parent 052e1397df
commit 7d854ffb0a
85 changed files with 8499 additions and 1339 deletions
+252 -2
View File
@@ -128,7 +128,7 @@
"Longitude": "Longitude",
"Register inspection": "Register inspection",
"Files of element": "Files of element",
"Fases and layers": "Phases and layers",
"Phases and layers": "Phases and layers",
"Elements": "Elements",
"optional": "optional",
"each": "each",
@@ -145,5 +145,255 @@
"Viewer": "Viewer",
"Remove": "Remove",
"No users assigned yet": "No users assigned yet",
"Select": "Select"
"Select": "Select",
"Log Out": "Log Out",
"Company": "Company",
"Companies": "Companies",
"Company Management": "Company Management",
"New Company": "New Company",
"Edit Company": "Edit Company",
"Delete Company": "Delete Company",
"User Management": "User Management",
"New User": "New User",
"Edit User": "Edit User",
"Delete User": "Delete User",
"Reference": "Reference",
"Contact": "Contact",
"Verified": "Verified",
"Type": "Type",
"Owner": "Owner",
"Constructor": "Constructor",
"Subcontractor": "Subcontractor",
"Supplier": "Supplier",
"No role": "No role",
"Active": "Active",
"Inactive": "Inactive",
"Suspended": "Suspended",
"Start Date": "Start Date",
"Est. End": "Est. End",
"Issue": "Issue",
"Issues": "Issues",
"New Issue": "New Issue",
"Open": "Open",
"Resolved": "Resolved",
"Closed": "Closed",
"Priority": "Priority",
"High": "High",
"Medium": "Medium",
"Low": "Low",
"Gantt": "Gantt",
"Report": "Report",
"Reports": "Reports",
"Created at": "Created at",
"Updated at": "Updated at",
"Confirm delete": "Confirm delete",
"This action cannot be undone": "This action cannot be undone",
"No data": "No data",
"Export CSV": "Export CSV",
"Export PDF": "Export PDF",
"Planned": "Planned",
"Started": "Started",
"Map filters": "Map filters",
"Progress: :min% :max%": "Progress: :min% :max%",
"Clear": "Clear",
"Hide panel": "Hide panel",
"Show phases and layers": "Show phases and layers",
"Show images": "Show images",
"Schedule": "Schedule",
"Center map": "Center map",
"Select element": "Select element",
"Search by name, phase or layer...": "Search by name, phase or layer...",
"Element status": "Element status",
"Notes": "Notes",
"Result": "Result",
"No result": "No result",
"Approved": "Approved",
"Conditional": "Conditional",
"Failed": "Failed",
"Registered data": "Registered data",
"Inspection #:id": "Inspection #:id",
"Layer / Phase": "Layer / Phase",
"No templates (info)": "No templates.",
"Create one": "Create one",
"Click on a map element or search above to edit it": "Click on a map element or search above to edit it",
"Date": "Date",
"Inspector": "Inspector",
"View detail": "View detail",
"No inspections registered": "No inspections registered",
"No elements in this project": "No elements in this project",
"Inspections": "Inspections",
"Project data": "Project data",
"Team": "Team",
"Save changes": "Save changes",
"Create project": "Create project",
"Identification": "Identification",
"Location": "Location",
"Click on the map or drag the marker to update the location": "Click on the map or drag the marker to update the location",
"Coordinates": "Coordinates",
"Auto when clicking the map": "Auto when clicking the map",
"No country": "No country",
"Search country...": "Search country...",
"Inspection templates": "Inspection templates",
"Import CSV/Excel": "Import CSV/Excel",
"Copy from project": "Copy from project",
"New template": "New template",
"Edit template": "Edit template",
"Template name": "Template name",
"Associated phase (optional)": "Associated phase (optional)",
"Global project": "Global project",
"Form fields": "Form fields",
"field(s)": "field(s)",
"Internal name": "Internal name",
"Visible label": "Visible label",
"Remove field": "Remove field",
"Min": "Min",
"Max": "Max",
"Step": "Step",
"Options (comma separated)": "Options (comma separated)",
"Add field": "Add field",
"Save template": "Save template",
"No templates yet (table)": "No templates. Use the buttons above to create or import.",
"Delete template confirmation": "Delete this template? This action cannot be undone.",
"Import template from CSV / Excel": "Import template from CSV / Excel",
"File format (one row = one field):": "File format (one row = one field):",
"Download example": "Download example",
"CSV or Excel file": "CSV or Excel file",
"Loading file...": "Loading file...",
"Preview": "Preview",
"Change file": "Change file",
"Create template (action)": "Create template",
"field(s) detected": "field(s) detected",
"Copy template from another project": "Copy template from another project",
"Source project": "Source project",
"Select project...": "Select project...",
"This project has no templates.": "This project has no templates.",
"Select the templates to copy": "Select the templates to copy",
"selected": "selected",
"Select a project to see its templates.": "Select a project to see its templates.",
"Copy": "Copy",
"Back to map": "Back to map",
"Import": "Import",
"or": "or",
"Layers (:count)": "Layers (:count)",
"No layers. Create or import one.": "No layers. Create or import one.",
"elem.": "elem.",
"Export": "Export",
"Bulk assignment": "Bulk assignment",
"Apply template or status to all elements of :layer": "Apply template or status to all elements of :layer",
"No change": "No change",
"Apply to all": "Apply to all",
"Apply changes to all elements of this layer?": "Apply changes to all elements of this layer?",
"Element editor": "Element editor",
"Select a layer to edit": "Select a layer to edit",
"Delayed phases": "Delayed phases",
"Needs attention": "Needs attention",
"No delays": "No delays",
"phases": "phases",
"Open issues": "Open issues",
"critical": "critical",
"Pending inspections": "Pending inspections",
"To do": "To do",
"Completed inspections": "Completed inspections",
"Rejected inspections": "Rejected inspections",
"Need review": "Need review",
"View all": "View all",
"No projects available": "No projects available",
"phase": "phase",
"Recent issues": "Recent issues",
"No open issues": "No open issues",
"No recent inspections": "No recent inspections",
"User": "User",
"No users found": "No users found",
"No companies assigned yet": "No companies assigned yet",
"Select template...": "Select template...",
"Observations...": "Observations...",
"by": "by",
"ago": "ago",
"No inspections yet for this element": "No inspections yet for this element",
"Inspection History": "Inspection History",
"View": "View",
"Media for this element": "Media for this element",
"No media for this element yet": "No media for this element yet",
"Project Media": "Project Media",
"No project media yet": "No project media yet",
"Feature:": "Element:",
"Inspection:": "Inspection:",
"Project Data": "Project Data",
"Name of responsible": "Name of responsible",
"Reports and Analytics": "Reports and Analytics",
"Time range:": "Time range:",
"This week": "This week",
"This month": "This month",
"This quarter": "This quarter",
"This year": "This year",
"Project Progress (last 6 months)": "Project Progress (last 6 months)",
"Inspections by Type": "Inspections by Type",
"Projects by Status": "Projects by Status",
"Average Progress by Project": "Average Progress by Project",
"Total Active Projects": "Total Active Projects",
"Inspections This Month": "Inspections This Month",
"Average Progress": "Average Progress",
"Completed Projects": "Completed Projects",
"Loading data...": "Loading data...",
"Optional": "Optional",
"Expand layers": "Expand layers",
"New user": "New user",
"Search by name or email...": "Search by name or email...",
"No users found (table)": "No users found",
"Select element (label)": "Select element",
"Search by name, layer or phase...": "Search by name, layer or phase...",
"No elements found": "No elements found",
"No media yet": "No media yet",
"Manage the companies that participate in projects": "Manage the companies that participate in projects",
"Search companies by name or tax ID...": "Search companies by name or tax ID...",
"Complete the company information. Fields marked with * are required.": "Complete the company information. Fields marked with * are required.",
"Validation errors": "Validation errors",
"Tax ID": "Tax ID",
"E.g.: B12345678": "E.g.: B12345678",
"Nickname": "Nickname",
"E.g.: Acme Construct": "E.g.: Acme Construct",
"Select a status": "Select a status",
"Company Type": "Company Type",
"Select a type": "Select a type",
"Phone": "Phone",
"Website": "Website",
"Company Logo": "Company Logo",
"Select file...": "Select file...",
"Logo preview": "Logo preview",
"Additional notes": "Additional notes",
"No companies registered. Create your first company using the button above.": "No companies registered. Create your first company using the button above.",
"Logo of": "Logo of",
"No tax ID": "No tax ID",
"Delete company confirmation": "Delete this company? This action cannot be undone.",
"Company list": "Company list",
"Add Phase": "Add Phase",
"Update": "Update",
"Delete file confirmation": "Delete this file? This action cannot be undone.",
"Back to map": "Back to map",
"Create generic templates that can be used in any phase of the project": "Create generic templates that can be used in any phase of the project",
"In Progress": "In Progress",
"Select a project to see its templates.": "Select a project to see its templates.",
"Select a project to view details": "Select a project to view details",
"No description available": "No description available",
"completed": "completed",
"Back to projects": "Back to projects",
"Not defined": "Not defined",
"Progress overview": "Progress overview",
"General progress": "General progress",
"Progress by phase": "Progress by phase",
"No phases defined for this project": "No phases defined for this project",
"Progress gallery": "Progress gallery",
"Change orders": "Change orders",
"Requested": "Requested",
"Amount": "Amount",
"Approve": "Approve",
"Reject": "Reject",
"No pending change orders": "No pending change orders",
"Pending": "Pending",
"Total": "Total",
"Inspections": "Inspections",
"My Projects": "My Projects",
"Editable": "Editable",
"Name of responsible": "Name of responsible",
"Select template...": "Select template..."
}
+252 -3
View File
@@ -128,9 +128,8 @@
"Longitude": "Longitud",
"Register inspection": "Registrar inspección",
"Files of element": "Archivos del elemento",
"Fases and layers": "Fases y capas",
"Phases and layers": "Fases y capas",
"Elements": "Elementos",
"Log Out": "Cerrar sesión",
"optional": "opcional",
"each": "cada",
"Image": "Imagen",
@@ -146,5 +145,255 @@
"Viewer": "Espectador",
"Remove": "Eliminar",
"No users assigned yet": "Sin usuarios asignados",
"Select": "Seleccionar"
"Select": "Seleccionar",
"Log Out": "Cerrar sesión",
"Company": "Empresa",
"Companies": "Empresas",
"Company Management": "Gestión de empresas",
"New Company": "Nueva empresa",
"Edit Company": "Editar empresa",
"Delete Company": "Eliminar empresa",
"User Management": "Gestión de usuarios",
"New User": "Nuevo usuario",
"Edit User": "Editar usuario",
"Delete User": "Eliminar usuario",
"Reference": "Referencia",
"Contact": "Contacto",
"Verified": "Verificado",
"Type": "Tipo",
"Owner": "Promotor",
"Constructor": "Constructora",
"Subcontractor": "Subcontratista",
"Supplier": "Proveedor",
"No role": "Sin rol",
"Active": "Activo",
"Inactive": "Inactivo",
"Suspended": "Suspendido",
"Start Date": "Fecha inicio",
"Est. End": "Fin estimado",
"Issue": "Incidencia",
"Issues": "Incidencias",
"New Issue": "Nueva incidencia",
"Open": "Abierta",
"Resolved": "Resuelta",
"Closed": "Cerrada",
"Priority": "Prioridad",
"High": "Alta",
"Medium": "Media",
"Low": "Baja",
"Gantt": "Gantt",
"Report": "Informe",
"Reports": "Informes",
"Created at": "Creado el",
"Updated at": "Actualizado el",
"Confirm delete": "Confirmar eliminación",
"This action cannot be undone": "Esta acción no se puede deshacer",
"No data": "Sin datos",
"Export CSV": "Exportar CSV",
"Export PDF": "Exportar PDF",
"Planned": "Planificado",
"Started": "Iniciado",
"Map filters": "Filtros del mapa",
"Progress: :min% :max%": "Progreso: :min% :max%",
"Clear": "Limpiar",
"Hide panel": "Ocultar panel",
"Show phases and layers": "Mostrar fases y capas",
"Show images": "Mostrar imágenes",
"Schedule": "Cronograma",
"Center map": "Centrar mapa",
"Select element": "Seleccionar elemento",
"Search by name, phase or layer...": "Buscar por nombre, fase o capa...",
"Element status": "Estado del elemento",
"Notes": "Notas",
"Result": "Resultado",
"No result": "Sin resultado",
"Approved": "Aprobada",
"Conditional": "Condicional",
"Failed": "Fallida",
"Registered data": "Datos registrados",
"Inspection #:id": "Inspección #:id",
"Layer / Phase": "Capa / Fase",
"No templates (info)": "No hay templates.",
"Create one": "Crear uno",
"Click on a map element or search above to edit it": "Haz clic en un elemento del mapa o búscalo arriba para editarlo",
"Date": "Fecha",
"Inspector": "Inspector",
"View detail": "Ver detalle",
"No inspections registered": "No hay inspecciones registradas",
"No elements in this project": "No hay elementos en este proyecto",
"Inspections": "Inspecciones",
"Project data": "Datos del proyecto",
"Team": "Equipo",
"Save changes": "Guardar cambios",
"Create project": "Crear proyecto",
"Identification": "Identificación",
"Location": "Ubicación",
"Click on the map or drag the marker to update the location": "Pulsa en el mapa o arrastra el marcador para actualizar la ubicación.",
"Coordinates": "Coordenadas",
"Auto when clicking the map": "Auto al pulsar el mapa",
"No country": "— Sin especificar —",
"Search country...": "Buscar país…",
"Inspection templates": "Templates de inspección",
"Import CSV/Excel": "Importar CSV/Excel",
"Copy from project": "Copiar de proyecto",
"New template": "Nuevo template",
"Edit template": "Editar template",
"Template name": "Nombre del template",
"Associated phase (optional)": "Fase asociada (opcional)",
"Global project": "Global del proyecto",
"Form fields": "Campos del formulario",
"field(s)": "campo(s)",
"Internal name": "Nombre interno",
"Visible label": "Etiqueta visible",
"Remove field": "Quitar",
"Min": "Mín",
"Max": "Máx",
"Step": "Paso",
"Options (comma separated)": "Opciones (separadas por coma)",
"Add field": "Agregar campo",
"Save template": "Guardar template",
"No templates yet (table)": "No hay templates. Usa los botones de arriba para crear o importar.",
"Delete template confirmation": "¿Eliminar este template? Esta acción no se puede deshacer.",
"Import template from CSV / Excel": "Importar template desde CSV / Excel",
"File format (one row = one field):": "Formato del archivo (una fila = un campo):",
"Download example": "Descargar ejemplo",
"CSV or Excel file": "Archivo CSV o Excel",
"Loading file...": "Cargando archivo...",
"Preview": "Previsualizar",
"Change file": "Cambiar archivo",
"Create template (action)": "Crear template",
"field(s) detected": "campo(s) detectados",
"Copy template from another project": "Copiar template de otro proyecto",
"Source project": "Proyecto origen",
"Select project...": "Seleccionar proyecto...",
"This project has no templates.": "Este proyecto no tiene templates.",
"Select the templates to copy": "Selecciona los templates a copiar",
"selected": "seleccionados",
"Select a project to see its templates.": "Selecciona un proyecto para ver sus templates.",
"Copy": "Copiar",
"Back to map": "Volver al mapa",
"Import": "Importar",
"or": "o",
"Layers (:count)": "Capas (:count)",
"No layers. Create or import one.": "Sin capas. Crea o importa una.",
"elem.": "elem.",
"Export": "Exportar",
"Bulk assignment": "Asignación masiva",
"Apply template or status to all elements of :layer": "Aplica template o estado a todos los elementos de :layer",
"No change": "Sin cambio",
"Apply to all": "Aplicar a todos",
"Apply changes to all elements of this layer?": "¿Aplicar cambios a todos los elementos de esta capa?",
"Element editor": "Editor de elementos",
"Select a layer to edit": "Selecciona una capa para editar",
"Delayed phases": "Fases con retraso",
"Needs attention": "Requiere atención",
"No delays": "Sin retrasos",
"phases": "fases",
"Open issues": "Issues abiertos",
"critical": "críticos",
"Pending inspections": "Insp. pendientes",
"To do": "Por realizar",
"Completed inspections": "Insp. completadas",
"Rejected inspections": "Insp. rechazadas",
"Need review": "Requieren revisión",
"View all": "Ver todos",
"No projects available": "No hay proyectos disponibles",
"phase": "fase",
"Recent issues": "Issues recientes",
"No open issues": "Sin issues abiertos",
"No recent inspections": "Sin inspecciones recientes",
"User": "Usuario",
"No users found": "No se encontraron usuarios",
"No companies assigned yet": "Sin empresas asignadas",
"Select template...": "Seleccionar plantilla...",
"Observations...": "Observaciones...",
"by": "por",
"ago": "hace",
"No inspections yet for this element": "Sin inspecciones para este elemento",
"Inspection History": "Historial de inspecciones",
"View": "Ver",
"Media for this element": "Archivos de este elemento",
"No media for this element yet": "Sin archivos para este elemento",
"Project Media": "Archivos del proyecto",
"No project media yet": "Sin archivos del proyecto",
"Feature:": "Elemento:",
"Inspection:": "Inspección:",
"Project Data": "Datos del proyecto",
"Name of responsible": "Nombre del responsable",
"Reports and Analytics": "Reportes y Analítica",
"Time range:": "Rango de tiempo:",
"This week": "Esta semana",
"This month": "Este mes",
"This quarter": "Este trimestre",
"This year": "Este año",
"Project Progress (last 6 months)": "Progreso de Proyectos (últimos 6 meses)",
"Inspections by Type": "Inspecciones por Tipo",
"Projects by Status": "Distribución de Proyectos por Estado",
"Average Progress by Project": "Progreso Promedio por Proyecto",
"Total Active Projects": "Total Proyectos Activos",
"Inspections This Month": "Inspecciones Este Mes",
"Average Progress": "Promedio de Progreso",
"Completed Projects": "Proyectos Completados",
"Loading data...": "Cargando datos...",
"Optional": "Opcional",
"Expand layers": "Expandir capas",
"New user": "Nuevo usuario",
"Search by name or email...": "Buscar por nombre o email…",
"No users found (table)": "No se encontraron usuarios",
"Select element (label)": "Seleccionar elemento",
"Search by name, layer or phase...": "Buscar por nombre, capa o fase...",
"No elements found": "No se encontraron elementos",
"No media yet": "Sin archivos aún",
"Manage the companies that participate in projects": "Gestione las empresas que participan en los proyectos",
"Search companies by name or tax ID...": "Buscar empresas por nombre o NIF...",
"Complete the company information. Fields marked with * are required.": "Complete la información de la empresa. Los campos marcados con * son obligatorios.",
"Validation errors": "Errores de validación",
"Tax ID": "NIF/NIE/CIF",
"E.g.: B12345678": "Ej: B12345678",
"Nickname": "Apodo",
"E.g.: Acme Construct": "Ej: Acme Construct",
"Select a status": "Seleccione un estado",
"Company Type": "Tipo de Empresa",
"Select a type": "Seleccione un tipo",
"Phone": "Teléfono",
"Website": "Sitio Web",
"Company Logo": "Logo de la Empresa",
"Select file...": "Seleccionar archivo...",
"Logo preview": "Vista previa del logo",
"Additional notes": "Notas Adicionales",
"No companies registered. Create your first company using the button above.": "No hay empresas registradas. Cree su primera empresa usando el botón de arriba.",
"Logo of": "Logo de",
"No tax ID": "Sin NIF/CIF",
"Delete company confirmation": "¿Eliminar esta empresa? Esta acción no se puede deshacer.",
"Company list": "Lista de Empresas",
"Add Phase": "Agregar Fase",
"Update": "Actualizar",
"Delete file confirmation": "¿Eliminar este archivo? Esta acción no se puede deshacer.",
"Back to map": "Volver al mapa",
"Create generic templates that can be used in any phase of the project": "Crea templates genéricos que puedan usarse en cualquier fase del proyecto",
"In Progress": "En obra",
"Select a project to see its templates.": "Selecciona un proyecto para ver sus templates.",
"Select a project to view details": "Seleccione un proyecto para ver detalles",
"No description available": "Sin descripción disponible",
"completed": "completado",
"Back to projects": "Volver a proyectos",
"Not defined": "No definida",
"Progress overview": "Resumen de Progreso",
"General progress": "Progreso General",
"Progress by phase": "Progreso por Fase",
"No phases defined for this project": "No hay fases definidas para este proyecto",
"Progress gallery": "Galería de Progreso",
"Change orders": "Órdenes de Cambio",
"Requested": "Solicitado",
"Amount": "Monto",
"Approve": "Aprobar",
"Reject": "Rechazar",
"No pending change orders": "No hay órdenes de cambio pendientes",
"Pending": "Pendiente",
"Total": "Total",
"Inspections": "Inspecciones",
"My Projects": "Mis proyectos",
"Editable": "Editable",
"Name of responsible": "Nombre del responsable",
"Select template...": "Seleccionar plantilla..."
}
+9
View File
@@ -0,0 +1,9 @@
<?php
return [
'failed' => 'Las credenciales introducidas no son válidas.',
'password' => 'La contraseña indicada es incorrecta.',
'throttle' => 'Demasiados intentos de acceso. Por favor, inténtalo de nuevo en :seconds segundos.',
];
+8
View File
@@ -0,0 +1,8 @@
<?php
return [
'previous' => '&laquo; Anterior',
'next' => 'Siguiente &raquo;',
];
+11
View File
@@ -0,0 +1,11 @@
<?php
return [
'reset' => 'Tu contraseña ha sido restablecida.',
'sent' => 'Te hemos enviado un enlace para restablecer tu contraseña.',
'throttled' => 'Por favor, espera antes de volver a intentarlo.',
'token' => 'Este token de restablecimiento de contraseña no es válido.',
'user' => 'No encontramos ningún usuario con esa dirección de correo.',
];
+194
View File
@@ -0,0 +1,194 @@
<?php
return [
'accepted' => 'El campo :attribute debe ser aceptado.',
'accepted_if' => 'El campo :attribute debe ser aceptado cuando :other es :value.',
'active_url' => 'El campo :attribute debe ser una URL válida.',
'after' => 'El campo :attribute debe ser una fecha posterior a :date.',
'after_or_equal' => 'El campo :attribute debe ser una fecha posterior o igual a :date.',
'alpha' => 'El campo :attribute solo debe contener letras.',
'alpha_dash' => 'El campo :attribute solo debe contener letras, números, guiones y guiones bajos.',
'alpha_num' => 'El campo :attribute solo debe contener letras y números.',
'any_of' => 'El campo :attribute no es válido.',
'array' => 'El campo :attribute debe ser un array.',
'ascii' => 'El campo :attribute solo debe contener caracteres alfanuméricos de un solo byte y símbolos.',
'before' => 'El campo :attribute debe ser una fecha anterior a :date.',
'before_or_equal' => 'El campo :attribute debe ser una fecha anterior o igual a :date.',
'between' => [
'array' => 'El campo :attribute debe tener entre :min y :max elementos.',
'file' => 'El campo :attribute debe estar entre :min y :max kilobytes.',
'numeric' => 'El campo :attribute debe estar entre :min y :max.',
'string' => 'El campo :attribute debe tener entre :min y :max caracteres.',
],
'boolean' => 'El campo :attribute debe ser verdadero o falso.',
'can' => 'El campo :attribute contiene un valor no autorizado.',
'confirmed' => 'La confirmación del campo :attribute no coincide.',
'contains' => 'Al campo :attribute le falta un valor obligatorio.',
'current_password' => 'La contraseña es incorrecta.',
'date' => 'El campo :attribute debe ser una fecha válida.',
'date_equals' => 'El campo :attribute debe ser una fecha igual a :date.',
'date_format' => 'El campo :attribute debe coincidir con el formato :format.',
'decimal' => 'El campo :attribute debe tener :decimal decimales.',
'declined' => 'El campo :attribute debe ser rechazado.',
'declined_if' => 'El campo :attribute debe ser rechazado cuando :other es :value.',
'different' => 'El campo :attribute y :other deben ser diferentes.',
'digits' => 'El campo :attribute debe tener :digits dígitos.',
'digits_between' => 'El campo :attribute debe tener entre :min y :max dígitos.',
'dimensions' => 'El campo :attribute tiene dimensiones de imagen inválidas.',
'distinct' => 'El campo :attribute tiene un valor duplicado.',
'doesnt_contain' => 'El campo :attribute no debe contener ninguno de los siguientes valores: :values.',
'doesnt_end_with' => 'El campo :attribute no debe terminar con uno de los siguientes valores: :values.',
'doesnt_start_with' => 'El campo :attribute no debe comenzar con uno de los siguientes valores: :values.',
'email' => 'El campo :attribute debe ser una dirección de correo válida.',
'encoding' => 'El campo :attribute debe estar codificado en :encoding.',
'ends_with' => 'El campo :attribute debe terminar con uno de los siguientes valores: :values.',
'enum' => 'El :attribute seleccionado no es válido.',
'exists' => 'El :attribute seleccionado no es válido.',
'extensions' => 'El campo :attribute debe tener una de las siguientes extensiones: :values.',
'file' => 'El campo :attribute debe ser un archivo.',
'filled' => 'El campo :attribute debe tener un valor.',
'gt' => [
'array' => 'El campo :attribute debe tener más de :value elementos.',
'file' => 'El campo :attribute debe ser mayor que :value kilobytes.',
'numeric' => 'El campo :attribute debe ser mayor que :value.',
'string' => 'El campo :attribute debe tener más de :value caracteres.',
],
'gte' => [
'array' => 'El campo :attribute debe tener :value elementos o más.',
'file' => 'El campo :attribute debe ser mayor o igual a :value kilobytes.',
'numeric' => 'El campo :attribute debe ser mayor o igual a :value.',
'string' => 'El campo :attribute debe tener :value caracteres o más.',
],
'hex_color' => 'El campo :attribute debe ser un color hexadecimal válido.',
'image' => 'El campo :attribute debe ser una imagen.',
'in' => 'El :attribute seleccionado no es válido.',
'in_array' => 'El campo :attribute debe existir en :other.',
'in_array_keys' => 'El campo :attribute debe contener al menos una de las siguientes claves: :values.',
'integer' => 'El campo :attribute debe ser un número entero.',
'ip' => 'El campo :attribute debe ser una dirección IP válida.',
'ipv4' => 'El campo :attribute debe ser una dirección IPv4 válida.',
'ipv6' => 'El campo :attribute debe ser una dirección IPv6 válida.',
'json' => 'El campo :attribute debe ser una cadena JSON válida.',
'list' => 'El campo :attribute debe ser una lista.',
'lowercase' => 'El campo :attribute debe estar en minúsculas.',
'lt' => [
'array' => 'El campo :attribute debe tener menos de :value elementos.',
'file' => 'El campo :attribute debe ser menor que :value kilobytes.',
'numeric' => 'El campo :attribute debe ser menor que :value.',
'string' => 'El campo :attribute debe tener menos de :value caracteres.',
],
'lte' => [
'array' => 'El campo :attribute no debe tener más de :value elementos.',
'file' => 'El campo :attribute debe ser menor o igual a :value kilobytes.',
'numeric' => 'El campo :attribute debe ser menor o igual a :value.',
'string' => 'El campo :attribute debe tener :value caracteres o menos.',
],
'mac_address' => 'El campo :attribute debe ser una dirección MAC válida.',
'max' => [
'array' => 'El campo :attribute no debe tener más de :max elementos.',
'file' => 'El campo :attribute no debe ser mayor que :max kilobytes.',
'numeric' => 'El campo :attribute no debe ser mayor que :max.',
'string' => 'El campo :attribute no debe tener más de :max caracteres.',
],
'max_digits' => 'El campo :attribute no debe tener más de :max dígitos.',
'mimes' => 'El campo :attribute debe ser un archivo de tipo: :values.',
'mimetypes' => 'El campo :attribute debe ser un archivo de tipo: :values.',
'min' => [
'array' => 'El campo :attribute debe tener al menos :min elementos.',
'file' => 'El campo :attribute debe tener al menos :min kilobytes.',
'numeric' => 'El campo :attribute debe ser al menos :min.',
'string' => 'El campo :attribute debe tener al menos :min caracteres.',
],
'min_digits' => 'El campo :attribute debe tener al menos :min dígitos.',
'missing' => 'El campo :attribute debe estar ausente.',
'missing_if' => 'El campo :attribute debe estar ausente cuando :other es :value.',
'missing_unless' => 'El campo :attribute debe estar ausente a menos que :other sea :value.',
'missing_with' => 'El campo :attribute debe estar ausente cuando :values está presente.',
'missing_with_all' => 'El campo :attribute debe estar ausente cuando :values están presentes.',
'multiple_of' => 'El campo :attribute debe ser un múltiplo de :value.',
'not_in' => 'El :attribute seleccionado no es válido.',
'not_regex' => 'El formato del campo :attribute no es válido.',
'numeric' => 'El campo :attribute debe ser un número.',
'password' => [
'letters' => 'El campo :attribute debe contener al menos una letra.',
'mixed' => 'El campo :attribute debe contener al menos una letra mayúscula y una minúscula.',
'numbers' => 'El campo :attribute debe contener al menos un número.',
'symbols' => 'El campo :attribute debe contener al menos un símbolo.',
'uncompromised' => 'El :attribute proporcionado ha aparecido en una filtración de datos. Elige un :attribute diferente.',
],
'present' => 'El campo :attribute debe estar presente.',
'present_if' => 'El campo :attribute debe estar presente cuando :other es :value.',
'present_unless' => 'El campo :attribute debe estar presente a menos que :other sea :value.',
'present_with' => 'El campo :attribute debe estar presente cuando :values está presente.',
'present_with_all' => 'El campo :attribute debe estar presente cuando :values están presentes.',
'prohibited' => 'El campo :attribute está prohibido.',
'prohibited_if' => 'El campo :attribute está prohibido cuando :other es :value.',
'prohibited_if_accepted' => 'El campo :attribute está prohibido cuando :other es aceptado.',
'prohibited_if_declined' => 'El campo :attribute está prohibido cuando :other es rechazado.',
'prohibited_unless' => 'El campo :attribute está prohibido a menos que :other esté en :values.',
'prohibits' => 'El campo :attribute prohíbe que :other esté presente.',
'regex' => 'El formato del campo :attribute no es válido.',
'required' => 'El campo :attribute es obligatorio.',
'required_array_keys' => 'El campo :attribute debe contener entradas para: :values.',
'required_if' => 'El campo :attribute es obligatorio cuando :other es :value.',
'required_if_accepted' => 'El campo :attribute es obligatorio cuando :other es aceptado.',
'required_if_declined' => 'El campo :attribute es obligatorio cuando :other es rechazado.',
'required_unless' => 'El campo :attribute es obligatorio a menos que :other esté en :values.',
'required_with' => 'El campo :attribute es obligatorio cuando :values está presente.',
'required_with_all' => 'El campo :attribute es obligatorio cuando :values están presentes.',
'required_without' => 'El campo :attribute es obligatorio cuando :values no está presente.',
'required_without_all' => 'El campo :attribute es obligatorio cuando ninguno de :values está presente.',
'same' => 'El campo :attribute debe coincidir con :other.',
'size' => [
'array' => 'El campo :attribute debe contener :size elementos.',
'file' => 'El campo :attribute debe pesar :size kilobytes.',
'numeric' => 'El campo :attribute debe ser :size.',
'string' => 'El campo :attribute debe tener :size caracteres.',
],
'starts_with' => 'El campo :attribute debe comenzar con uno de los siguientes valores: :values.',
'string' => 'El campo :attribute debe ser una cadena de texto.',
'timezone' => 'El campo :attribute debe ser una zona horaria válida.',
'unique' => 'El :attribute ya está en uso.',
'uploaded' => 'El campo :attribute no se pudo subir.',
'uppercase' => 'El campo :attribute debe estar en mayúsculas.',
'url' => 'El campo :attribute debe ser una URL válida.',
'ulid' => 'El campo :attribute debe ser un ULID válido.',
'uuid' => 'El campo :attribute debe ser un UUID válido.',
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
'attributes' => [
'name' => 'nombre',
'email' => 'correo electrónico',
'password' => 'contraseña',
'address' => 'dirección',
'phone' => 'teléfono',
'description' => 'descripción',
'start_date' => 'fecha de inicio',
'end_date' => 'fecha de fin',
'end_date_estimated' => 'fecha estimada de fin',
'reference' => 'referencia',
'status' => 'estado',
'type' => 'tipo',
'color' => 'color',
'progress_percent' => 'porcentaje de progreso',
'tax_id' => 'NIF/CIF',
'country' => 'país',
'city' => 'ciudad',
'latitude' => 'latitud',
'longitude' => 'longitud',
'logo' => 'logo',
'avatar' => 'avatar',
'role' => 'rol',
'company_id' => 'empresa',
'current_password' => 'contraseña actual',
'new_password' => 'nueva contraseña',
'new_password_confirmation' => 'confirmación de nueva contraseña',
],
];
+39
View File
@@ -0,0 +1,39 @@
<?php
return [
'All' => 'Todos',
'All Columns' => 'Todas las columnas',
'Applied Filters' => 'Filtros aplicados',
'Applied Sorting' => 'Ordenación aplicada',
'Bulk Actions' => 'Acciones masivas',
'Bulk Actions Confirm' => '¿Estás seguro?',
'Clear' => 'Limpiar',
'Columns' => 'Columnas',
'Debugging Values' => 'Valores de depuración',
'Deselect All' => 'Deseleccionar todo',
'Done Reordering' => 'Reordenación finalizada',
'Filters' => 'Filtros',
'not_applicable' => 'N/A',
'No' => 'No',
'No items found, try to broaden your search' => 'Sin resultados. Intenta ampliar la búsqueda.',
'of' => 'de',
'Remove filter option' => 'Quitar filtro',
'Remove sort option' => 'Quitar ordenación',
'Reorder' => 'Reordenar',
'results' => 'resultados',
'row' => 'fila',
'rows' => 'filas',
'rows, do you want to select all' => 'filas, ¿deseas seleccionarlas todas?',
'Search' => 'Buscar',
'Select All' => 'Seleccionar todo',
'Select All On Page' => 'Seleccionar todo en la página',
'Showing' => 'Mostrando',
'to' => 'a',
'Yes' => 'Sí',
'You are currently selecting all' => 'Actualmente estás seleccionando todo',
'You are not connected to the internet' => 'No tienes conexión a internet',
'You have selected' => 'Has seleccionado',
'Per Page' => 'Por página',
'Export' => 'Exportar',
'Loading' => 'Cargando',
];