import type { Dictionary } from "./en" export const es = { common: { languageSwitcher: { label: "Idioma", options: { en: "Inglés", es: "Español", }, }, search: { placeholder: "Buscar...", label: "Buscar", clearLabel: "Limpiar búsqueda", }, pagination: { summaryPrefix: "Mostrando página", summarySeparator: "de", previous: "Anterior", next: "Siguiente", }, submitButton: { defaultLabel: "Enviar", processing: "Procesando", success: "Completado", }, forbidden: { title: "Acceso denegado", description: "No tienes permisos para acceder a esta sección.", homeLink: "Volver al inicio", }, }, layout: { sidebar: { home: "Inicio", inventory: "Inventario", items: "Artículos", categories: "Categorías", assets: "Activos", people: "Personas", movements: "Movimientos", assignments: "Asignaciones", users: "Usuarios", }, navbar: { accountLabel: "Mi cuenta", }, addMenu: { add: "Añadir", import: "Importar", category: "Categoría", item: "Artículo", asset: "Activo", person: "Persona", assignment: "Asignación", }, resetDatabase: { idle: "Reiniciar base de datos", loading: "Reiniciando...", successToast: "Base de datos reiniciada correctamente", errorToast: "Error al reiniciar la base de datos", }, logout: { label: "Cerrar sesión", }, }, inventory: { categories: { list: { title: "Categorías", addLabel: "Agregar categoría", empty: "No se encontraron categorías.", columns: { name: "Nombre", items: "Artículos", actions: "Acciones", }, actions: { edit: "Editar categoría", delete: "Eliminar categoría", }, }, new: { title: "Nueva categoría", }, edit: { title: "Editar categoría", }, form: { nameLabel: "Nombre", namePlaceholder: "Nombre de la categoría", createSubmit: "Crear categoría", updateSubmit: "Actualizar categoría", }, delete: { label: "Eliminar categoría", pending: "Eliminando...", unknownError: "Error desconocido", }, actions: { createSuccess: "Categoría creada correctamente", createFailure: "Error al crear la categoría", updateSuccess: "Categoría actualizada correctamente", updateFailure: "Error al actualizar la categoría", deleteSuccess: "Categoría eliminada correctamente", deleteFailure: "Error al eliminar la categoría", duplicateName: "La categoría ya existe", unchangedName: "El nombre de la categoría no cambió", notFound: "Categoría no encontrada", hasItems: "No se puede eliminar una categoría con artículos", }, schema: { nameRequired: "El nombre es obligatorio y debe tener al menos 3 caracteres", idRequired: "El ID es obligatorio", }, }, items: { list: { title: "Artículos", addLabel: "Agregar artículo", empty: "No se encontraron artículos.", columns: { name: "Nombre", category: "Categoría", assets: "Activos", stock: "Stock", actions: "Acciones", }, actions: { view: "Ver artículo", edit: "Editar artículo", delete: "Eliminar artículo", }, }, detail: { notFound: "Artículo no encontrado", labels: { category: "Categoría", stock: "Stock", }, }, new: { title: "Nuevo artículo", }, edit: { title: "Editar artículo", notFound: "Artículo no encontrado", hasAssetsWarning: "Este artículo ya tiene activos asignados.", }, form: { nameLabel: "Nombre", namePlaceholder: "Nombre del artículo", categoryLabel: "Categoría", categoryPlaceholder: "Selecciona una categoría", stockLabel: "Stock", stockPlaceholder: "0", createSubmit: "Crear artículo", updateSubmit: "Actualizar artículo", }, delete: { label: "Eliminar artículo", pending: "Eliminando...", unknownError: "Error desconocido", }, actions: { createSuccess: "Artículo creado correctamente", createFailure: "Error al crear el artículo", updateSuccess: "Artículo actualizado correctamente", updateFailure: "Error al actualizar el artículo", deleteSuccess: "Artículo eliminado correctamente", deleteFailure: "Error al eliminar el artículo", duplicateName: "El artículo ya existe", notFound: "Artículo no encontrado", hasAssets: "No se puede eliminar un artículo con activos", hasStock: "No se puede eliminar un artículo con stock", invalidStock: "Stock inválido", negativeStock: "El stock no puede ser negativo", }, schema: { nameRequired: "El nombre es obligatorio", categoryRequired: "La categoría es obligatoria", stockRequired: "El stock es obligatorio", itemRequired: "El artículo es obligatorio", }, }, assets: { list: { title: "Activos", addLabel: "Agregar activo", empty: "No se encontraron activos.", columns: { item: "Artículo", category: "Categoría", serialNumber: "Número de serie", status: "Estado", actions: "Acciones", }, actions: { edit: "Editar activo", }, }, new: { title: "Nuevo activo", }, edit: { title: "Editar activo", notFound: "Activo no encontrado", }, form: { itemLabel: "Artículo", itemPlaceholder: "Selecciona un artículo", serialNumberLabel: "Número de serie", serialNumberPlaceholder: "Número de serie", deliveryNoteLabel: "Remito", deliveryNotePlaceholder: "Remito", statusLabel: "Estado", statusPlaceholder: "Selecciona un estado", personLabel: "Persona", personPlaceholder: "Selecciona una persona", createSubmit: "Crear activo", updateSubmit: "Actualizar activo", }, status: { AVAILABLE: "Disponible", ASSIGNED: "Asignado", RESERVED: "Reservado", IN_REPAIR: "En reparación", BROKEN: "Roto", STOLEN: "Robado", DISPOSED: "Dado de baja", }, fallback: { unknownStatus: "Estado desconocido", }, actions: { createSuccess: "Activo creado correctamente", createFailure: "Error al crear el activo", updateSuccess: "Activo actualizado correctamente", updateFailure: "Error al actualizar el activo", duplicateSerialNumber: "El número de serie ya existe", notFound: "Activo no encontrado", itemNotFound: "Artículo no encontrado", assignmentAlreadyReturned: "La asignación ya fue devuelta", previousItemNotFound: "Artículo anterior no encontrado para el activo disponible", insufficientStock: "El artículo no tiene stock suficiente", personRequired: "La persona es obligatoria", invalidStatus: "Estado inválido", genericFailure: "Error al procesar el activo", }, schema: { itemRequired: "El artículo es obligatorio", serialNumberRequired: "El número de serie es obligatorio", idRequired: "El activo es obligatorio", statusRequired: "El estado es obligatorio", invalidCreateStatus: "El estado inicial debe ser Disponible o Asignado", invalidUpdateStatus: "Estado inválido", }, }, assignments: { list: { title: "Asignaciones", addLabel: "Agregar asignación", empty: "No se encontraron asignaciones.", columns: { person: "Persona", item: "Artículo", serialNumber: "Número de serie", quantity: "Cantidad", actions: "Acciones", }, actions: { edit: "Editar asignación", return: "Devolver asignación", }, }, new: { title: "Nueva asignación", }, edit: { title: "Editar asignación", notFound: "Asignación no encontrada", }, form: { personLabel: "Persona", personPlaceholder: "Selecciona una persona", itemLabel: "Artículo", itemPlaceholder: "Selecciona un artículo", assetLabel: "Activo", assetPlaceholder: "Selecciona un activo", quantityLabel: "Cantidad", quantityPlaceholder: "1", createSubmit: "Crear asignación", updateSubmit: "Actualizar asignación", }, fallback: { missingValue: "No disponible", }, actions: { createSuccess: "Asignación creada correctamente", createFailure: "Error al crear la asignación", updateSuccess: "Asignación actualizada correctamente", updateFailure: "Error al actualizar la asignación", returnSuccess: "Asignación devuelta correctamente", returnFailure: "Error al devolver la asignación", notFound: "Asignación no encontrada", itemNotFound: "Artículo no encontrado", itemInsufficientStock: "El artículo no tiene stock suficiente", assetNotFound: "Activo no encontrado", assetItemMismatch: "El activo no pertenece al artículo", assignmentAlreadyReturned: "La asignación ya fue devuelta", invalidData: "Datos de asignación inválidos", genericFailure: "Error al procesar la asignación", }, schema: { personRequired: "La persona es obligatoria", itemIdRequired: "El artículo es obligatorio", quantityMinOne: "La cantidad debe ser al menos 1", assetIdRequired: "El activo es obligatorio cuando se especifica el artículo", idRequired: "El ID de asignación es obligatorio", }, }, people: { list: { title: "Personas", addLabel: "Agregar persona", empty: "No se encontraron personas.", columns: { name: "Nombre", email: "Correo electrónico", phone: "Teléfono", department: "Departamento", actions: "Acciones", }, actions: { view: "Ver persona", edit: "Editar persona", }, }, detail: { notFound: "Persona no encontrada", labels: { email: "Correo electrónico", phone: "Teléfono", department: "Departamento", }, }, new: { title: "Agregar persona", }, edit: { title: "Editar persona", notFound: "Persona no encontrada", }, form: { firstNameLabel: "Nombre", firstNamePlaceholder: "Nombre", lastNameLabel: "Apellido", lastNamePlaceholder: "Apellido", departmentLabel: "Departamento", departmentPlaceholder: "Selecciona un departamento", emailLabel: "Correo electrónico", emailPlaceholder: "Correo electrónico", phoneLabel: "Teléfono", phonePlaceholder: "Teléfono", createSubmit: "Crear persona", updateSubmit: "Actualizar persona", }, fallback: { unknownDepartment: "Departamento desconocido", }, departments: { IT: "IT", ENGINEERING: "Ingeniería", LOGISTICS: "Logística", TRAFFIC: "Tráfico", DRIVER: "Chofer", ADMINISTRATION: "Administración", SALES: "Ventas", OTHER: "Otro", }, actions: { createSuccess: "Persona creada correctamente", createFailure: "Error al crear la persona", updateSuccess: "Persona actualizada correctamente", updateFailure: "Error al actualizar la persona", duplicateEmail: "El correo electrónico ya existe", }, schema: { firstNameRequired: "El nombre es obligatorio", lastNameRequired: "El apellido es obligatorio", departmentRequired: "El departamento es obligatorio", emailInvalid: "El correo electrónico no es válido", idRequired: "El ID es obligatorio", userIdInvalid: "El ID de usuario debe ser un UUID válido", }, }, movements: { list: { title: "Movimientos", empty: "No se encontraron movimientos.", columns: { type: "Tipo", item: "Artículo", serialNumber: "Número de serie", quantity: "Cantidad", person: "Persona", date: "Fecha", }, }, snippet: { title: "Movimientos", labels: { type: "Tipo", quantity: "Cantidad", }, }, types: { IN: "Entrada", OUT: "Salida", ASSIGNMENT: "Asignación", RETURN: "Devolución", ADJUSTMENT: "Ajuste", DELETED: "Eliminación", }, fallback: { missingValue: "-", unknownType: "Tipo de movimiento desconocido", }, }, }, admin: { users: { list: { title: "Usuarios", addLabel: "Agregar usuario", empty: "No se encontraron usuarios.", columns: { name: "Nombre", email: "Correo electrónico", role: "Rol", status: "Estado", actions: "Acciones", }, actions: { edit: "Editar usuario", }, }, new: { title: "Nuevo usuario", }, edit: { title: "Editar usuario", }, form: { nameLabel: "Nombre", namePlaceholder: "Nombre completo", firstNameLabel: "Nombre", firstNamePlaceholder: "Nombre", lastNameLabel: "Apellido", lastNamePlaceholder: "Apellido", departmentLabel: "Departamento", departmentPlaceholder: "Selecciona un departamento", emailLabel: "Correo electrónico", emailPlaceholder: "usuario@ejemplo.com", phoneLabel: "Teléfono", phonePlaceholder: "Teléfono", passwordLabel: "Contraseña", passwordPlaceholder: "Mínimo 8 caracteres", roleLabel: "Rol", activeLabel: "Usuario activo", createSubmit: "Crear usuario", updateSubmit: "Actualizar usuario", }, resetPassword: { title: "Restablecer contraseña", passwordLabel: "Nueva contraseña", passwordPlaceholder: "Mínimo 8 caracteres", submit: "Restablecer contraseña", }, roles: { ADMIN: "Administrador", MANAGER: "Gerente", STAFF: "Personal", VIEWER: "Visor", NO_USER: "Sin cuenta de usuario", }, status: { active: "Activo", inactive: "Inactivo", }, actions: { createSuccess: "Usuario creado correctamente", createFailure: "Error al crear el usuario", updateSuccess: "Usuario actualizado correctamente", updateFailure: "Error al actualizar el usuario", toggleStatusSuccess: "Estado del usuario actualizado correctamente", toggleStatusFailure: "Error al actualizar el estado del usuario", resetPasswordSuccess: "Contraseña restablecida correctamente", resetPasswordFailure: "Error al restablecer la contraseña", duplicateEmail: "El correo electrónico ya existe", notFound: "Usuario no encontrado", lastActiveAdmin: "No se puede eliminar el acceso del último administrador activo", selfAdminAccess: "No puedes eliminar tu propio acceso de administrador", selfDeactivate: "No puedes desactivar tu propio usuario", }, schema: { nameRequired: "El nombre es obligatorio", emailInvalid: "Correo electrónico no válido", passwordMinLength: "La contraseña debe tener al menos 8 caracteres", userIdRequired: "El ID de usuario es obligatorio", }, fallback: { unknownRole: "Rol desconocido", }, }, }, login: { title: "Iniciar sesión", emailLabel: "Correo electrónico", passwordLabel: "Contraseña", submitLabel: "Iniciar sesión", }, dashboardHome: { heading: "Panel de control", cards: { items: { title: "Total de artículos", countLabel: "Total", }, assets: { title: "Total de activos", countLabel: "Total", }, people: { title: "Total de personas", countLabel: "Total", }, }, }, } satisfies Dictionary