export const en = { common: { languageSwitcher: { label: "Language", options: { en: "English", es: "Spanish", }, }, search: { placeholder: "Search...", label: "Search", clearLabel: "Clear search", }, pagination: { summaryPrefix: "Showing page", summarySeparator: "of", previous: "Previous", next: "Next", }, submitButton: { defaultLabel: "Submit", processing: "Processing", success: "Success", }, forbidden: { title: "Access denied", description: "You do not have permission to access this section.", homeLink: "Back to home", }, }, layout: { sidebar: { home: "Home", inventory: "Inventory", items: "Items", categories: "Categories", assets: "Assets", people: "People", movements: "Movements", assignments: "Assignments", users: "Users", }, navbar: { accountLabel: "My Account", }, addMenu: { add: "Add", import: "Import", category: "Category", item: "Item", asset: "Asset", person: "Person", assignment: "Assignment", }, resetDatabase: { idle: "Reset Database", loading: "Resetting...", successToast: "Database reset successfully", errorToast: "Error resetting database", }, logout: { label: "Sign Out", }, }, inventory: { categories: { list: { title: "Categories", addLabel: "Add Category", empty: "No categories found.", columns: { name: "Name", items: "Items", actions: "Actions", }, actions: { edit: "Edit category", delete: "Delete category", }, }, new: { title: "New Category", }, edit: { title: "Edit Category", }, form: { nameLabel: "Name", namePlaceholder: "Category name", createSubmit: "Create Category", updateSubmit: "Update Category", }, delete: { label: "Delete category", pending: "Deleting...", unknownError: "Unknown error", }, actions: { createSuccess: "Category created successfully", createFailure: "Failed to create category", updateSuccess: "Category updated successfully", updateFailure: "Failed to update category", deleteSuccess: "Category deleted successfully", deleteFailure: "Failed to delete category", duplicateName: "Category already exists", unchangedName: "Category name unchanged", notFound: "Category not found", hasItems: "Cannot delete category with items", }, schema: { nameRequired: "Name is required and must be at least 3 characters long", idRequired: "ID is required", }, }, items: { list: { title: "Items", addLabel: "Add Item", empty: "No items found.", columns: { name: "Name", category: "Category", assets: "Assets", stock: "Stock", actions: "Actions", }, actions: { view: "View item", edit: "Edit item", delete: "Delete item", }, }, detail: { notFound: "Item not found", labels: { category: "Category", stock: "Stock", }, }, new: { title: "New Item", }, edit: { title: "Edit Item", notFound: "Item not found", hasAssetsWarning: "This item has already assets assigned to it.", }, form: { nameLabel: "Name", namePlaceholder: "Item name", categoryLabel: "Category", categoryPlaceholder: "Select a category", stockLabel: "Stock", stockPlaceholder: "0", createSubmit: "Create Item", updateSubmit: "Update Item", }, delete: { label: "Delete item", pending: "Deleting...", unknownError: "Unknown error", }, actions: { createSuccess: "Item created successfully!", createFailure: "Error creating item", updateSuccess: "Item updated successfully!", updateFailure: "Failed to update item", deleteSuccess: "Item deleted successfully!", deleteFailure: "Failed to delete item", duplicateName: "Item already exists", notFound: "Item not found", hasAssets: "Cannot delete item with assets", hasStock: "Cannot delete item with stock", invalidStock: "Invalid stock", negativeStock: "Stock cannot be negative", }, schema: { nameRequired: "Name is required", categoryRequired: "Category is required", stockRequired: "Stock is required", itemRequired: "Item is required", }, }, assets: { list: { title: "Assets", addLabel: "Add Asset", empty: "No assets found.", columns: { item: "Item", category: "Category", serialNumber: "Serial Number", status: "Status", actions: "Actions", }, actions: { edit: "Edit asset", }, }, new: { title: "New Asset", }, edit: { title: "Edit Asset", notFound: "Asset not found", }, form: { itemLabel: "Item", itemPlaceholder: "Select an item", serialNumberLabel: "Serial Number", serialNumberPlaceholder: "Serial number", deliveryNoteLabel: "Delivery Note", deliveryNotePlaceholder: "Delivery note", statusLabel: "Status", statusPlaceholder: "Select a status", personLabel: "Person", personPlaceholder: "Select a person", createSubmit: "Create Asset", updateSubmit: "Update Asset", }, status: { AVAILABLE: "Available", ASSIGNED: "Assigned", RESERVED: "Reserved", IN_REPAIR: "In repair", BROKEN: "Broken", STOLEN: "Stolen", DISPOSED: "Disposed", }, fallback: { unknownStatus: "Unknown status", }, actions: { createSuccess: "Asset created successfully", createFailure: "Error creating asset", updateSuccess: "Asset updated successfully", updateFailure: "Error updating asset", duplicateSerialNumber: "This serial number already exists", notFound: "Asset not found", itemNotFound: "Item not found", assignmentAlreadyReturned: "Assignment already returned", previousItemNotFound: "Previous item not found for available asset", insufficientStock: "Item does not have enough stock", personRequired: "Person is required", invalidStatus: "Invalid status", genericFailure: "Error processing asset", }, schema: { itemRequired: "Item is required", serialNumberRequired: "Serial number is required", idRequired: "ID is required", statusRequired: "Status is required", invalidCreateStatus: "Status must be Available or Assigned", invalidUpdateStatus: "Invalid status", }, }, assignments: { list: { title: "Assignments", addLabel: "Add Assignment", empty: "No assignments found.", columns: { person: "Person", item: "Item", serialNumber: "Serial Number", quantity: "Quantity", actions: "Actions", }, actions: { edit: "Edit assignment", return: "Return assignment", }, }, new: { title: "New Assignment", }, edit: { title: "Edit Assignment", notFound: "Assignment not found", }, form: { personLabel: "Person", personPlaceholder: "Select a person", itemLabel: "Item", itemPlaceholder: "Select an item", assetLabel: "Asset", assetPlaceholder: "Select an asset", quantityLabel: "Quantity", quantityPlaceholder: "1", createSubmit: "Create Assignment", updateSubmit: "Update Assignment", }, fallback: { missingValue: "N/A", }, actions: { createSuccess: "Assignment created successfully", createFailure: "Error creating assignment", updateSuccess: "Assignment updated successfully", updateFailure: "Error updating assignment", returnSuccess: "Assignment returned successfully", returnFailure: "Error returning assignment", notFound: "Assignment not found", itemNotFound: "Item not found", itemInsufficientStock: "Item does not have enough stock", assetNotFound: "Asset not found", assetItemMismatch: "Asset does not belong to item", assignmentAlreadyReturned: "Assignment already returned", invalidData: "Invalid assignment data", genericFailure: "Error processing assignment", }, schema: { personRequired: "Person is required", itemIdRequired: "Item is required", quantityMinOne: "Quantity must be at least 1", assetIdRequired: "Asset ID is required when item ID is provided", idRequired: "Assignment ID is required", }, }, people: { list: { title: "People", addLabel: "Add Person", empty: "No people found.", columns: { name: "Name", email: "Email", phone: "Phone", department: "Department", actions: "Actions", }, actions: { view: "View person", edit: "Edit person", }, }, detail: { notFound: "Person not found", labels: { email: "Email", phone: "Phone", department: "Department", }, }, new: { title: "Add Person", }, edit: { title: "Edit Person", notFound: "Person not found", }, form: { firstNameLabel: "First Name", firstNamePlaceholder: "First name", lastNameLabel: "Last Name", lastNamePlaceholder: "Last name", departmentLabel: "Department", departmentPlaceholder: "Select a department", emailLabel: "Email", emailPlaceholder: "Email", phoneLabel: "Phone", phonePlaceholder: "Phone", createSubmit: "Create Person", updateSubmit: "Update Person", }, fallback: { unknownDepartment: "Unknown department", }, departments: { IT: "IT", ENGINEERING: "Engineering", LOGISTICS: "Logistics", TRAFFIC: "Traffic", DRIVER: "Driver", ADMINISTRATION: "Administration", SALES: "Sales", OTHER: "Other", }, actions: { createSuccess: "Person created successfully", createFailure: "Failed to create person", updateSuccess: "Person updated successfully", updateFailure: "Failed to update person", duplicateEmail: "Email already exists", }, schema: { firstNameRequired: "First name is required", lastNameRequired: "Last name is required", departmentRequired: "Department is required", emailInvalid: "Email format is invalid", idRequired: "ID is required", userIdInvalid: "User ID must be a valid UUID", }, }, movements: { list: { title: "Movements", empty: "No movements found", columns: { type: "Type", item: "Item", serialNumber: "Serial Number", quantity: "Quantity", person: "Person", date: "Date", }, }, snippet: { title: "Movements", labels: { type: "Type", quantity: "Quantity", }, }, types: { IN: "In", OUT: "Out", ASSIGNMENT: "Assignment", RETURN: "Return", ADJUSTMENT: "Adjustment", DELETED: "Deleted", }, fallback: { missingValue: "-", unknownType: "Unknown movement type", }, }, }, admin: { users: { list: { title: "Users", addLabel: "Add User", empty: "No users found.", columns: { name: "Name", username: "Username", email: "Email", role: "Role", status: "Status", actions: "Actions", }, actions: { edit: "Edit user", }, }, new: { title: "New User", }, edit: { title: "Edit User", }, form: { nameLabel: "Name", namePlaceholder: "Full name", usernameLabel: "Username", usernamePlaceholder: "Username", emailLabel: "Email", emailPlaceholder: "user@example.com", passwordLabel: "Password", passwordPlaceholder: "Minimum 8 characters", roleLabel: "Role", activeLabel: "Active user", createSubmit: "Create User", updateSubmit: "Update User", }, resetPassword: { title: "Reset password", passwordLabel: "New password", passwordPlaceholder: "Minimum 8 characters", submit: "Reset Password", }, roles: { ADMIN: "Admin", MANAGER: "Manager", STAFF: "Staff", VIEWER: "Viewer", }, status: { active: "Active", inactive: "Inactive", }, actions: { createSuccess: "User created successfully", createFailure: "Failed to create user", updateSuccess: "User updated successfully", updateFailure: "Failed to update user", toggleStatusSuccess: "User status updated successfully", toggleStatusFailure: "Failed to update user status", resetPasswordSuccess: "Password reset successfully", resetPasswordFailure: "Failed to reset password", duplicateUsername: "Username already exists", duplicateEmail: "Email already exists", notFound: "User not found", lastActiveAdmin: "Cannot remove access from the last active administrator", selfAdminAccess: "You cannot remove your own administrator access", selfDeactivate: "You cannot deactivate your own user", }, schema: { usernameRequired: "Username is required", nameRequired: "Name is required", emailInvalid: "Invalid email", passwordMinLength: "Password must be at least 8 characters", userIdRequired: "User id is required", }, fallback: { unknownRole: "Unknown role", }, }, }, login: { title: "Sign In", usernameLabel: "Username", passwordLabel: "Password", submitLabel: "Sign In", }, dashboardHome: { heading: "Dashboard", cards: { items: { title: "Total Items", countLabel: "Total", }, assets: { title: "Total Assets", countLabel: "Total", }, people: { title: "Total People", countLabel: "Total", }, }, }, } export type Dictionary = typeof en