export const en = { title: "Qlockify", logout: "Logout", logoutToast: "Successfully logged out!", confirmLogoutTitle: "Confirm Logout", confirmLogoutMessage: "Are you sure you want to log out of your account?", confirmLeave: "You have unsaved changes. Are you sure you want to leave?", cancel: "Cancel", save: "Save", lightMode: "Light Mode", darkMode: "Dark Mode", loadingText: "Loading...", loading: "Loading...", add: "Add", create: "Create", remove: "Remove", noMoreResults: "No more results.", actions: { create: "Create", view: "View", edit: "Edit", delete: "Delete", cancel: "Cancel", }, login: { welcome: (title: string = "Qlockifiy") => `Welcome to ${title}`, enterPassword: "Enter your password", verifyNumber: "Verify your number", enterMobileDesc: "Enter your mobile number to continue", signInDesc: "Sign in using your account password", sentCodeDesc: (mobile: string) => `We sent a 6-digit code to ${mobile}`, mobilePlaceholder: "Mobile Number (e.g. 09123456789)", continueWithPassword: "Continue with Password", orContinueWith: "Or continue with", otpLogin: "OTP Login", register: "Register", passwordPlaceholder: "Password", signIn: "Sign In", back: "Back", otpPlaceholder: "6-digit code", verifyAndContinue: "Verify & Continue", terms: "By clicking continue, you agree to our Terms of Service and Privacy Policy.", brandingQuote: "Manage your time and workspaces efficiently with our minimal, fast, and secure platform.", toasts: { enterMobile: "Please enter your mobile number", verifySent: "Verification code sent!", failedOtp: "Failed to send OTP", fillAll: "Please fill all fields", successLogin: "Successfully logged in!", invalidCreds: "Invalid credentials", enterOtp: "Please enter the OTP code", invalidOtp: "Invalid OTP code" } }, loginTerms: { prefix: "By logging in, you agree to our ", link: "Terms of Service and Privacy Policy", suffix: "" }, terms: { back: "Back", title: "Terms of Service and Privacy Policy", lastUpdated: "Last Updated: March 12, 2026", sections: { acceptance: { title: "1. Acceptance of Terms", content: "By accessing and using Qlockify, you agree to be bound by these Terms of Service and all applicable laws and regulations. If you do not agree with any of these terms, you are prohibited from using or accessing this site." }, license: { title: "2. User License and Responsibilities", items: [ "You must provide accurate, current, and complete information during the registration process.", "You are responsible for maintaining the security of your account and password.", "You may not use the service for any illegal or unauthorized purpose.", "Your use of the service must not violate any laws in your jurisdiction." ] }, privacy: { title: "3. Privacy Policy & Data Collection", p1: "We take your privacy seriously. We collect information to provide better services to our users. The types of personal data we collect include:", personalLabel: "Personal Information", personalText: "Name, email address, phone number, and birth date provided during registration or profile updates.", usageLabel: "Usage Data", usageText: "Information on how the service is accessed and used, including timestamps and device metrics.", p2: "We do not sell, trade, or rent your personal identification information to others. We employ industry-standard security measures to protect against unauthorized access, alteration, disclosure, or destruction of your personal data." }, liability: { title: "4. Limitation of Liability", content: "In no event shall Qlockify or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on the platform." }, modifications: { title: "5. Modifications", content: "We may revise these terms of service at any time without notice. By using this website, you are agreeing to be bound by the then-current version of these terms of service." }, }, }, profile: { title: "User Profile", firstName: "First Name", lastName: "Last Name", email: "Email", description: "Description", mobileNumber: "Mobile Number", birthDate: "Birth Date", yearsOld: "Years Old", dateJoined: "Date Joined", editInfo: "Edit Info", changePicture: "Change Picture", save: "Save", cancel: "Cancel", upload: "Upload", remove: "Remove", imageInput: "Click to select or drag & drop", toasts: { successEdit: "Profile updated successfully!", successImage: "Profile picture updated!", successRemoveImage: "Profile picture removed!", error: "Something went wrong!" } }, workspace: { title: "Workspace Management", createNew: "Create New Workspace", manage: "Manage Workspaces", nameLabel: "Workspace Name", namePlaceholder: "Enter workspace name", descriptionLabel: "Description", descriptionPlaceholder: "Enter description (optional)", searchMemberPlaceholder: "Search exact mobile (e.g. 09123456789)", addMember: "Add Member", roleAdmin: "Admin", roleMember: "Member", userNotFound: "User not found", userAlreadyAdded: "User already added", inviteMembers: "Invite Members (Exact Mobile Number)", selectedMembers: "Selected Members", creating: "Creating...", submit: "Create", cancel: "Cancel", loading: "Loading...", confirmDelete: "Are you sure you want to delete this workspace?", deleteError: "Error deleting workspace", subtitle: "Manage your workspaces", noDescription: "No description", emptyState: "You are not a member of any workspace.", createTitle: "Create Workspace", editTitle: "Edit Workspace", detailTitle: "Workspace Details", save: "Save", create: "Create", noWorkspaceTitle: "Welcome!", noWorkspaceDesc: "Please create your first workspace.", back: "Back to Workspaces", roleLabel: "Your Role", openReports: "Open reports", statsMembers: "Members", statsRates: "Rates set", statsOwnersAdmins: "Owners & admins", statsGuests: "Guests", membersSectionTitle: "Members", membersSectionSubtitle: "People in this workspace and their current roles.", membersLocked: "Only owners and admins can view the full member list.", manageMembers: "Manage members", mobileNumber: "Mobile Number", youLabel: "You", resourcesTitle: "Resources", resourceOpen: "Open", roleDistributionTitle: "Role distribution", unknownMember: "Unknown member", roles: { owner: "Owner", admin: "Admin", member: "Member", guest: "Guest", }, createdSuccess: "Workspace created successfully", updatedSuccess: "Workspace updated successfully", fetchError: "Failed to load workspace data", remove: "Remove", noUsersFound: "No user found", selectRole: "Select Role", add: "Add", searchPlaceholder: "Seach Workspaces...", orderByUpdatedDesc: "Recently Updated", orderByCreatedDesc: "Newest First", orderByCreatedAsc: "Oldest First", orderByName: "Name (A-Z)", deleteSuccess: "Workspace deleted successfully", deleteTitle: "Delete Workspace", deleteWarning: "To confirm deletion, please type the workspace name:", members: "Members", searchUser: "Search user by mobile number", searching: "Searching...", noMembers: "No members found.", removeMemberTitle: "Remove member", confirmDeleteTitle: "Remove Member", confirmDeleteMessage: "Are you sure you want to remove this member from the workspace?", successCreate: "Workspace created successfully.", toast: { successCreate: "Workspace created successfully.", errorCreate: "Failed to create workspace.", successUpdate: "Workspace updated successfully.", errorUpdate: "Failed to update workspace.", successAdd: "Member added successfully.", errorAdd: "Failed to add member.", successRemove: "Member removed successfully.", errorRemove: "Failed to remove member.", successRole: "Role updated successfully.", errorRole: "Failed to update role.", errorLoad: "Failed to load workspace data.", cannotAddSelf: "You are automatically the owner.", }, onlyNumbersAllowed: "Only numbers are allowed for mobile number.", }, clients: { title: "Clients", description: (workspaceName: string) => `Manage clients for ${workspaceName}`, addClient: "Add Client", searchPlaceholder: "Search clients...", noClients: "No clients found", noClientsSearch: "Try adjusting your search query.", noClientsAdd: "Add your first client to get started.", addedOn: "Added", selectWorkspace: "Please select a workspace first.", modalTitle: "Create New Client", clientName: "Client Name", clientNamePlaceholder: "e.g. Acme Corp", notes: "Notes", notesPlaceholder: "Optional details...", create: "Create", cancel: "Cancel", editClient: "Edit Client", deleteConfirmTitle: "Delete Client", deleteConfirmMessage: (name: string) => `Are you sure you want to delete ${name}?`, delete: "Delete", saveChanges: "Save Changes", errors: { createFailed: "Failed to create client", fetchFailed: "Failed to fetch clients", updateFailed: "Failed to update client", deleteFailed: "Failed to delete client", }, }, pagination: { perPage: "per page", showing: "Showing", to: "to", of: "of", previous: "Previous", page: "Page", next: "Next", }, sidebar: { timesheet: "Timesheet", reports: "Reports", workspaces: 'Workspaces', clients: 'Clients', projects: "Projects", tags: "Tags", expand: 'Expand', collapse: 'Collapse', }, ordering: { createdAtDesc: "Newest First", createdAt: "Olders First", updatedAtDesc: "Recently Updated", name: "Name (A-Z)", nameDesc: "Name (Z-A)", }, projects: { title: "Projects", description: (workspaceName: string) => `Manage projects for ${workspaceName}`, active: "Active Projects", archived: "Archived Projects", createNew: "Create New", searchPlaceholder: "Search projects...", titlePlaceholder: "Enter title", descriptionPlaceholder: "Enter desription", titleLabel: "Title", clientLabel: "Client", colorLabel: "Color", descriptionLabel: "Description", loading: "Loading...", client: "Client", noClient: "No client", emptyState: "No projects found", deleteTitle: "Delete Project", deleteWarning: "To confirm deletion, please type the project name:", deleteSuccess: "Project deleted successfully", deleteError: "Failed to delete project", cancel: "Cancel", create: "Create", createProject: "Create New Project", editProject: "Edit Project", restore: "Restore", archive: "Archive", clientFetchError: "Failed to load clients.", namePlaceholder: "Project name...", teamMembers: "Team Members", creator: "Creator", addUser: "Add user by mobile", addFromWorkspace: "Add from workspace", searchMembers: "Search members...", addAllWorkspaceMembers: "Add all workspace members", confirmDeleteTitle: "Remove Member", confirmDeleteDesc: "Are you sure you want to remove this member from the project?", createSuccess: "Project created successfully.", createError: "Failed to create project.", updateSuccess: "Project updated successfully.", updateError: "Failed to update project.", edit: "Edit Project", memberAlreadyAdded: "This user is already on the project team.", roles: { member: "Member", manager: "Manager" }, projectMembers: "Project Members", removeAllWorkspaceMembers: "Remove All", searchWorkspaceMembers: "Search by name or enter mobile number...", userNotFound: "No user found with this mobile number.", alreadyInProject: "Already Added", addToProject: "Add to Project", noWorkspaceMembers: "No members found.", }, tags: { title: "Tags", description: (workspaceName: string) => `Manage tags for ${workspaceName}`, create: "Create Tag", createTitle: "Create Tag", editTitle: "Edit Tag", deleteTitle: "Delete Tag", deleteConfirmMessage: (name: string) => `Are you sure you want to delete ${name}?`, searchPlaceholder: "Search tags...", nameLabel: "Tag Name", namePlaceholder: "e.g. Design", colorLabel: "Color", emptyState: "No tags found", selectWorkspace: "Please select a workspace first.", fetchError: "Failed to load tags", createSuccess: "Tag created successfully.", updateSuccess: "Tag updated successfully.", saveError: "Failed to save tag.", deleteSuccess: "Tag deleted successfully.", deleteError: "Failed to delete tag.", }, rates: { workspaceSectionTitle: "Workspace User Rates", projectSectionTitle: "Project User Rates", workspaceRate: "Workspace rate", projectOverride: "Project override", inheritsWorkspaceRate: "Inherits workspace rate", noRate: "No rate", hourlyRatePlaceholder: "0.00", currencyPlaceholder: "USD", searchUnitPlaceholder: "Search unit...", removeRate: "Remove rate", workspaceSaveSuccess: "Workspace user rate saved.", workspaceSaveError: "Failed to save workspace user rate.", workspaceRemoveSuccess: "Workspace user rate removed.", workspaceRemoveError: "Failed to remove workspace user rate.", projectSaveSuccess: "Project user rate saved.", projectSaveError: "Failed to save project user rate.", projectRemoveSuccess: "Project user rate removed.", projectRemoveError: "Failed to remove project user rate.", }, timesheet: { title: "Timesheet", description: (workspaceName: string) => `Track time inside ${workspaceName}`, selectWorkspace: "Please select a workspace first.", addEntry: "Add Entry", startTimer: "Start Timer", stopTimer: "Stop Timer", timerRunning: "Timer Running", runningLabel: "Current timer", runningBadge: "Running", noRunningEntry: "No running entry", searchPlaceholder: "Search time entries...", orderingNewest: "Newest first", orderingOldest: "Oldest first", emptyState: "No time entries found", emptyDescription: "No description", createTitle: "Add Time Entry", startTitle: "Start Timer", editTitle: "Edit Time Entry", createSuccess: "Time entry created successfully.", startSuccess: "Timer started successfully.", updateSuccess: "Time entry updated successfully.", saveError: "Failed to save time entry.", stopSuccess: "Timer stopped successfully.", stopError: "Failed to stop timer.", deleteSuccess: "Time entry deleted successfully.", deleteError: "Failed to delete time entry.", fetchError: "Failed to load time entries.", optionsError: "Failed to load projects and tags.", descriptionLabel: "Description", descriptionPlaceholder: "What are you working on?", projectLabel: "Project", noProject: "No project", startLabel: "Start", endLabel: "End", billable: "Billable", noTagsHint: "Create tags first from the Tags page.", clearFilters: "Clear filters", customFromLabel: "From date", customToLabel: "To date", allClientsLabel: "All clients", allProjectsLabel: "All projects", allTagsLabel: "All tags", showFiltersLabel: "Show filters", hideFiltersLabel: "Hide filters", applyFiltersLabel: "Apply", clientFilterPrefix: "Client", projectFilterPrefix: "Project", tagFilterPrefix: "Tag", fromFilterPrefix: "From", toFilterPrefix: "To", deletedProjectLabel: "Deleted project", deletedTagLabel: "Deleted tag", }, reports: { title: "Reports", description: (workspaceName: string) => `Review activity reports for ${workspaceName}`, selectWorkspace: "Please select a workspace first.", chartTab: "Chart", tableTab: "Table", period: "Period", periodThisWeek: "This week", periodThisMonth: "This month", periodThisYear: "This year", periodFirstHalf: "First half of year", periodSecondHalf: "Second half of year", periodCustom: "Custom period", fromDate: "From date", toDate: "To date", user: "User", allUsers: "All users", searchUsers: "Search users...", client: "Client", allClients: "All clients", searchClients: "Search clients...", project: "Project", allProjects: "All projects", searchProjects: "Search projects...", tags: "Tags", allTags: "All tags", searchTags: "Search tags...", name: "Name", clear: "Clear", apply: "Apply", totalHours: "Total hours", billableHours: "Billable hours", nonBillableHours: "Non-billable hours", totalIncome: "Total income", chartTitle: "Activity chart", totalSeconds: "Total seconds", exportExcel: "Export Excel", exportPdf: "Export PDF", date: "Date", details: "Details", total: "Total", clientsTable: "Clients", projectsTable: "Projects", tagsTable: "Tags", loadError: "Failed to load reports.", loadDayDetailsError: "Failed to load day details.", loadFiltersError: "Failed to load report filters.", exportQueued: "Export queued. You will receive a notification with the download link.", exportError: "Failed to queue report export.", }, notifications: { title: "Notifications", open: "Open notifications", empty: "No notifications yet.", loading: "Loading notifications...", loadingMore: "Loading more...", loadMore: "Load more", markAllRead: "Mark all as read", markSeenError: "Failed to update notification", markAllError: "Failed to update notifications", deleteError: "Failed to delete notification", loadError: "Failed to load notifications", openError: "Failed to open notification", newTitle: "New notification", openAction: "Open", summary: (total: number, unread: number) => `${total} total, ${unread} unread`, }, }