Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

1387 lines
60 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"importDialog": {
"errorCount_one": "{{count}} error:",
"errorCount_other": "{{count}} errors:",
"warningCount_one": "{{count}} warning:",
"warningCount_other": "{{count}} warnings:",
"unmatchedPriorities_one": "{{count}} priority",
"unmatchedPriorities_other": "{{count}} priorities",
"unmatchedStatuses_one": "{{count}} status",
"unmatchedStatuses_other": "{{count}} statuses",
"unmatchedCategories_one": "{{count}} category",
"unmatchedCategories_other": "{{count}} categories",
"skippedCount_one": "{{count}} ticket was skipped.",
"skippedCount_other": "{{count}} tickets were skipped.",
"importTickets_one": "Import {{count}} Ticket",
"importTickets_other": "Import {{count}} Tickets",
"unmatchedClients_one": "{{count}} client",
"unmatchedClients_other": "{{count}} clients",
"unmatchedAgents_one": "{{count}} agent",
"unmatchedAgents_other": "{{count}} agents",
"unmatchedTeams_one": "{{count}} team",
"unmatchedTeams_other": "{{count}} teams",
"unmatchedContacts_one": "{{count}} contact",
"unmatchedContacts_other": "{{count}} contacts",
"unmatchedDateFormats_one": "{{count}} date format",
"unmatchedDateFormats_other": "{{count}} date formats",
"unmatchedValuesIntro_one": "{{count}} value from your CSV couldn't be automatically matched.",
"unmatchedValuesIntro_other": "{{count}} values from your CSV couldn't be automatically matched.",
"ticketCount_one": "({{count}} ticket)",
"ticketCount_other": "({{count}} tickets)",
"skipDropped_one": "Skip ({{count}} ticket dropped)",
"skipDropped_other": "Skip ({{count}} tickets dropped)",
"createdSuccess_one": "Successfully created {{count}} ticket.",
"createdSuccess_other": "Successfully created {{count}} tickets."
},
"title": "Support Tickets",
"subtitle": "View and manage your support tickets",
"backToTickets": "Back to Tickets",
"createNew": "Create New Ticket",
"createButton": "Create Support Ticket",
"viewAll": "View All Tickets",
"myTickets": "My Tickets",
"resetFilters": "Reset",
"filters": {
"allStatuses": "All Statuses",
"allOpen": "All Open Tickets",
"allClosed": "All Closed Tickets",
"allPriorities": "All Priorities",
"search": "Search tickets and comments...",
"category": "Filter by category",
"clearFilters": "Clear filters",
"assignee": "Assignee",
"allAssignees": "All Assignees",
"responseState": "Response State",
"allResponseStates": "All Response States",
"noResponseState": "No Response State",
"dueDate": "Due Date",
"allDueDates": "All Due Dates",
"overdue": "Overdue",
"today": "Due Today",
"upcoming": "Due Next 7 Days",
"beforeDate": "Before Date...",
"afterDate": "After Date...",
"beforeDateWithValue": "Before {{date}}",
"afterDateWithValue": "After {{date}}",
"noDueDate": "No Due Date",
"pickDate": "Pick date",
"slaStatus": "SLA Status",
"allSlaStatuses": "All SLA Status",
"hasSla": "Has SLA",
"noSla": "No SLA",
"onTrack": "On Track",
"breached": "Breached",
"paused": "Paused",
"allResponseStatuses": "All Response Statuses",
"responseStatus": "Response Status",
"board": "Filter by board"
},
"create": {
"title": "Create Support Ticket",
"titlePlaceholder": "Ticket Title",
"descriptionPlaceholder": "Describe your issue...",
"priorityPlaceholder": "Select Priority",
"boardPlaceholder": "Select Board",
"noBoardsAvailable": "No ticket boards are available for your account. Contact your administrator.",
"submit": "Create Ticket",
"submitting": "Creating...",
"errors": {
"titleRequired": "Title is required",
"descriptionRequired": "Description is required",
"priorityRequired": "Please select a priority",
"boardRequired": "Please select a board",
"createFailed": "Failed to create ticket. Please try again."
},
"linkedToAsset": "Linked asset: {{name}}",
"linkedToAssetGeneric": "Linked asset"
},
"status": {
"open": "Open",
"inProgress": "In Progress",
"resolved": "Resolved",
"closed": "Closed",
"pending": "Pending",
"waitingOnCustomer": "Waiting on Customer",
"waitingOnVendor": "Waiting on Vendor",
"unknown": "Unknown Status"
},
"priority": {
"low": "Low",
"medium": "Medium",
"high": "High",
"urgent": "Urgent",
"critical": "Critical",
"unknown": "Unknown Priority",
"planning": "Planning"
},
"fields": {
"ticketNumber": "Ticket Number",
"title": "Title",
"subject": "Subject",
"description": "Description",
"priority": "Priority",
"status": "Status",
"category": "Category",
"subcategory": "Subcategory",
"attachments": "Attachments",
"created": "Created",
"createdAt": "Created",
"lastUpdated": "Last Updated",
"updatedAt": "Last Updated",
"assignedTo": "Assigned To",
"requester": "Requester",
"client": "Client",
"dueDate": "Due Date",
"resolution": "Resolution",
"timeSpent": "Time Spent",
"notes": "Notes",
"internalNotes": "Internal Notes",
"board": "Board",
"team": "Team",
"assignedTeam": "Assigned Team",
"additionalAgents": "Additional Agents",
"createdBy": "Created By",
"location": "Location",
"contactPhone": "Contact Phone",
"clientPhone": "Client Phone",
"contactEmail": "Contact Email",
"clientEmail": "Client Email",
"impact": "Impact",
"urgency": "Urgency",
"responseState": "Response State",
"slaStatus": "SLA Status",
"product": "Product",
"quantity": "Quantity",
"total": "Total",
"price": "Price",
"rate": "Rate",
"recipient": "Recipient",
"error": "Error",
"displayOrder": "Display Order",
"parentCategory": "Parent Category",
"dateTimeFormat": "Date/Time Format",
"enteredBy": "Entered By",
"updatedBy": "Updated By",
"closedBy": "Closed By",
"enteredAt": "Entered At",
"closedAt": "Closed At",
"responseSource": "Response Source",
"ticketOrigin": "Ticket Origin",
"isClosed": "Is Closed",
"tags": "Tags",
"sla": "SLA",
"updated": "Updated",
"openInNewTab": "Open in new tab",
"actions": "Actions",
"linkedAssets": "Linked assets"
},
"actions": {
"view": "View",
"edit": "Edit",
"close": "Close Ticket",
"reopen": "Reopen Ticket",
"addNote": "Add Note",
"uploadFile": "Upload File",
"changeStatus": "Change Status",
"confirmStatusChange": "Are you sure you want to change the status of this ticket?",
"save": "Save",
"cancel": "Cancel",
"delete": "Delete",
"confirm": "Confirm",
"done": "Done",
"create": "Create",
"update": "Update",
"add": "Add",
"loadMore": "Load more",
"selectAll": "Select all",
"deselectAll": "Deselect all",
"proceed": "Proceed",
"export": "Export",
"reset": "Reset",
"importSelected": "Import Selected",
"printOptions": "Print options"
},
"messages": {
"noTickets": "No tickets found",
"loadingTickets": "Loading tickets...",
"ticketCreated": "Ticket created successfully",
"ticketUpdated": "Ticket updated successfully",
"commentAdded": "Comment added successfully",
"ticketClosed": "Ticket closed successfully",
"statusUpdateSuccess": "Ticket status successfully updated to \"{{status}}\".",
"error": "An error occurred while processing your request",
"loadError": "Failed to load ticket details",
"emptyComment": "Cannot add empty comment",
"commentError": "Failed to add comment",
"commentDeleteSuccess": "Comment deleted successfully",
"emptyNote": "Cannot save empty note",
"noDescription": "No description found.",
"filtersError": "Failed to load filter options.",
"loadingError": "Failed to load tickets. Please try again.",
"statusUpdateError": "Failed to update ticket status",
"notAuthenticated": "Not authenticated",
"userNotFound": "User ID not found in session",
"tenantNotFound": "Tenant not found in session. Please log out and log back in.",
"userNotAssociatedWithContact": "User not associated with a contact",
"contactNotAssociatedWithClient": "Contact not associated with a client. Please contact support.",
"ticketNotFound": "Ticket not found",
"commentNotFound": "Comment not found or not authorized",
"noDefaultBoard": "No default board configured for tickets",
"failedToCreateTicket": "Failed to create ticket",
"failedToFetchTicketDetails": "Failed to fetch ticket details",
"failedToAddComment": "Failed to add comment",
"failedToUpdateComment": "Failed to update comment",
"failedToDeleteComment": "Failed to delete comment",
"deleteOwnCommentError": "You can only delete your own comments",
"failedToUpdateTicketStatus": "Failed to update ticket status",
"noTitle": "No title",
"agentAdded": "Agent added successfully",
"agentAssigned": "Agent assigned successfully",
"agentRemoved": "Agent removed successfully",
"teamAssignSuccess": "Team assigned successfully",
"teamAssignFailed": "Failed to assign team",
"teamRemoveSuccess": "Team removed successfully",
"teamRemoveFailed": "Failed to remove team assignment",
"editOwnCommentOnly": "You can only edit your own comments",
"descriptionUpdated": "Description updated successfully",
"ticketIdMissing": "Ticket ID is missing.",
"watchListUpdateFailed": "Failed to update watch list",
"loadAllContactsFailed": "Failed to load all contacts",
"contactUpdated": "Contact updated successfully",
"itilImpactUpdated": "ITIL impact updated successfully",
"itilUrgencyUpdated": "ITIL urgency updated successfully",
"itilImpactUpdateFailed": "Failed to update ITIL impact",
"itilUrgencyUpdateFailed": "Failed to update ITIL urgency",
"clientUpdated": "Client updated successfully",
"locationUpdated": "Location updated successfully",
"pastedImageDeleteFailed_one": "Comment deleted, but could not delete {{count}} pasted image.",
"pastedImageDeleteFailed_other": "Comment deleted, but could not delete {{count}} pasted images.",
"commentWithImagesDeleted_one": "Comment and {{count}} pasted image deleted successfully.",
"commentWithImagesDeleted_other": "Comment and {{count}} pasted images deleted successfully.",
"pastedImagesDeleteFailed": "Comment deleted, but failed to delete pasted images.",
"removedFromBundle": "Removed ticket from bundle",
"bundleRemoved": "Bundle removed",
"addedToBundle": "Added ticket to bundle",
"cannotAddMasterAsChild": "Cannot add the master ticket as a child",
"ticketAlreadyBundled": "That ticket is already bundled",
"promotedMaster": "Promoted new master",
"bundleSettingsUpdated": "Bundle settings updated",
"addAgentFailed": "Failed to add agent",
"removeAgentFailed": "Failed to remove agent",
"saveCommentFailed": "Failed to save comment changes",
"updateDescriptionFailed": "Failed to update description",
"prepareTimeEntryFailed": "An error occurred while preparing the time entry. Please try again.",
"updateContactFailed": "Failed to update contact",
"updateClientFailed": "Failed to update client",
"updateLocationFailed": "Failed to update location",
"deleteCommentFailed": "Failed to delete comment",
"pastedImagesDeleted_one": "Deleted {{count}} pasted image.",
"pastedImagesDeleted_other": "Deleted {{count}} pasted images.",
"pastedImagesDeleteFailed_one": "Could not delete {{count}} pasted image.",
"pastedImagesDeleteFailed_other": "Could not delete {{count}} pasted images.",
"deleteCommentConfirm": "Are you sure you want to delete this comment? This action cannot be undone.",
"deleteCommentWithImages_one": "This comment includes {{count}} pasted image that was uploaded as a ticket document. Delete the comment only, or also delete the pasted image permanently?",
"deleteCommentWithImages_other": "This comment includes {{count}} pasted images that were uploaded as ticket documents. Delete the comment only, or also delete the pasted images permanently?",
"removeFromBundleFailed": "Failed to remove ticket from bundle",
"unbundleFailed": "Failed to unbundle ticket",
"addToBundleFailed": "Failed to add ticket to bundle",
"promoteMasterFailed": "Failed to promote master",
"updateBundleSettingsFailed": "Failed to update bundle settings",
"assetLoadFailed": "Failed to load asset details",
"assetNotFound": "Asset not found",
"addCommentFailed": "Failed to add comment",
"deleteTimeEntryFailed": "Failed to delete time entry",
"timeEntryDeleted": "Time entry deleted"
},
"conversation": {
"comments": "Comments",
"client": "Client",
"internal": "Internal",
"allComments": "All Comments",
"resolution": "Resolution",
"internalComments": "Internal Comments",
"resolutionComments": "Resolution Comments",
"markAsInternal": "Mark as Internal",
"markedAsInternal": "Marked as Internal",
"markAsResolution": "Mark as Resolution",
"markedAsResolution": "Marked as Resolution",
"oldestFirst": "Oldest first",
"newestFirst": "Newest first",
"addComment": "Add Comment",
"typeComment": "Type your comment here...",
"submit": "Submit",
"cancel": "Cancel",
"save": "Save",
"edit": "Edit",
"delete": "Delete",
"reply": "Reply",
"edited": "Edited",
"noComments": "No comments yet",
"metadataDebug": "View metadata (debug)",
"closeStatus": "Close status",
"noStatusChange": "Do not change status",
"clipboardDraftCancelTitle": "Pasted Images Detected",
"deleteUploadedImages": "Delete Images",
"keepUploadedImages": "Keep Images",
"bundledUpdate": "Bundled update",
"clientSuffix": " (Client)",
"internalCommentTooltip": "Internal Comment",
"resolutionCommentTooltip": "Resolution Comment",
"unknownUser": "Unknown User",
"editCommentAriaLabel": "Edit comment",
"deleteCommentAriaLabel": "Delete comment",
"inboundChildReplies": "Inbound replies on child tickets (view-only)",
"childTicket": "Child ticket",
"ticketPrefix": "Ticket {{number}}",
"clipboardDraftCancelMessage": "This draft includes pasted images that were already uploaded as ticket documents. Keep them, or delete them permanently?",
"replyCommentAriaLabel": "Reply to comment"
},
"responseState": {
"awaitingYourResponse": "Awaiting Your Response",
"awaitingSupportResponse": "Awaiting Support Response",
"awaitingYourResponseTooltip": "Support is waiting for your response",
"awaitingSupportResponseTooltip": "Your response has been received. Support will respond soon.",
"label": "Response State",
"awaitingClient": "Awaiting Client",
"awaitingInternal": "Awaiting Internal",
"clear": "Clear",
"setResponseState": "Set Response State",
"notSet": "Not set",
"set": "Set Response State",
"all": "All Response States",
"none": "No Response State"
},
"origin": {
"internal": "Created Internally",
"clientPortal": "Created via Client Portal",
"inboundEmail": "Created via Inbound Email",
"api": "Created via API",
"other": "Created via Other"
},
"responseSource": {
"clientPortal": "Received via Client Portal",
"inboundEmail": "Received via Inbound Email"
},
"documents": {
"title": "Documents",
"noDocuments": "No documents attached",
"upload": "Upload Document",
"download": "Download",
"remove": "Remove",
"preview": "Preview",
"linkDocuments": "Link Documents",
"editDocument": "Edit Document",
"viewDocument": "View Document",
"downloadToPlay": "Download to Play",
"delete": "Delete",
"previewUnavailable": "Preview unavailable",
"newDocument": "New Document",
"uploadFile": "Upload File"
},
"dashboard": {
"title": "Ticketing Dashboard",
"addTicket": "Add Ticket",
"shareTooltip": "Print, import and export",
"exportCsv": "Export CSV",
"bundledToggle": "Bundled",
"exportSelectedTooltip_one": "Export {{count}} selected ticket to CSV",
"exportSelectedTooltip_other": "Export {{count}} selected tickets to CSV",
"exportDisabledTooltip": "Select ticket(s) to export",
"selectAllMatching_one": "Select all {{count}} ticket matching your filters",
"selectAllMatching_other": "Select all {{count}} tickets matching your filters",
"allMatchingSelected_one": "All {{count}} ticket matching your filters is selected.",
"allMatchingSelected_other": "All {{count}} tickets matching your filters are selected.",
"allPageSelected_one": "All {{count}} ticket on this page is selected.",
"allPageSelected_other": "All {{count}} tickets on this page are selected.",
"clearSelection": "Clear selection",
"drawer": {
"loading": "Loading...",
"clientNotFound": "Client not found.",
"clientRendererMissing": "Client details are unavailable in this context.",
"clientLoadFailed": "Failed to load client."
},
"filters": {
"allAssignees": "All Assignees",
"selectStatus": "Select Status",
"responseState": "Response State",
"allResponseStates": "All Response States",
"noResponseState": "No Response State",
"dueDate": "Due Date",
"allDueDates": "All Due Dates",
"overdue": "Overdue",
"dueToday": "Due Today",
"dueNext7Days": "Due Next 7 Days",
"beforeDate": "Before Date...",
"beforeDateSelected": "Before {{date}}",
"afterDate": "After Date...",
"afterDateSelected": "After {{date}}",
"noDueDate": "No Due Date",
"pickDate": "Pick date",
"slaStatus": "SLA Status",
"allSlaStatus": "All SLA Status",
"hasSla": "Has SLA",
"noSla": "No SLA",
"onTrack": "On Track",
"breached": "Breached",
"paused": "Paused",
"bundled": "Bundled",
"activeBoards": "Active Boards",
"inactiveBoards": "Inactive Boards",
"allBoards": "All Boards"
},
"selection": {
"pageSelected_one": "All {{count}} ticket on this page are selected.",
"pageSelected_other": "All {{count}} tickets on this page are selected.",
"allMatchingSelected_one": "All {{count}} ticket matching your filters are selected.",
"allMatchingSelected_other": "All {{count}} tickets matching your filters are selected.",
"clear": "Clear selection",
"selectAllMatching_one": "Select all {{count}} ticket matching your filters",
"selectAllMatching_other": "Select all {{count}} tickets matching your filters"
},
"spacing": {
"compact": "Compact",
"spacious": "Spacious",
"decrease": "Decrease ticket list spacing",
"increase": "Increase ticket list spacing",
"reset": "Reset ticket list spacing"
},
"print": {
"action": "Print",
"selectedAction_one": "Print selected ({{count}})",
"selectedAction_other": "Print selected ({{count}})",
"title": "Tickets",
"selectedTitle_one": "Selected Tickets ({{count}})",
"selectedTitle_other": "Selected Tickets ({{count}})",
"subtitle_one": "{{count}} ticket",
"subtitle_other": "{{count}} tickets",
"noTickets": "No tickets to print",
"columns": {
"ticket": "Ticket",
"title": "Title",
"client": "Client",
"status": "Status",
"priority": "Priority",
"assigned": "Assigned",
"dueDate": "Due Date"
},
"emptyValue": "—",
"noDueDate": "No due date",
"values": {
"hasSla": "SLA"
},
"optionsDialog": {
"title": "Print options",
"selectedTitle": "Print options ({{count}} selected)",
"description": "Choose which columns to include when printing tickets."
},
"selectedAction": "Print selected ({{count}})",
"selectedTitle": "Selected Tickets ({{count}})",
"subtitle": "{{count}} tickets"
},
"exportSelectedAction": "Export selected ({{count}})",
"exportAction": "Export CSV",
"importAction": "Import CSV"
},
"bulk": {
"bundleTickets": "Bundle Tickets",
"actionBar": {
"selectedCount_one": "{{count}} selected",
"selectedCount_other": "{{count}} selected",
"move": "Move to Board",
"bundle": "Bundle",
"delete": "Delete",
"clear": "Clear",
"bundleNeedsTwo": "Select at least 2 tickets to bundle",
"assign": "Assign",
"status": "Status",
"priority": "Priority",
"tags": "Tags",
"dueDate": "Due Date",
"statusDisabledMultiBoard": "Selected tickets are on different boards",
"statusResolvingBoards": "Checking the boards of selected tickets…",
"more": "More"
},
"moveDialogTitle": "Move Selected Tickets",
"moveDialogDescription": "Select a destination board and status, then confirm moving the selected tickets.",
"destinationBoard": "Destination Board",
"destinationStatus": "Destination Status",
"selectDestinationBoard": "Select destination board...",
"selectDestinationStatus": "Select destination status...",
"noTicketsSelected": "No tickets selected.",
"moving": "Moving...",
"moveConfirm_one": "Move {{count}} Ticket",
"moveConfirm_other": "Move {{count}} Tickets",
"moveSuccess_one": "{{count}} ticket moved",
"moveSuccess_other": "{{count}} tickets moved",
"movePartialError": "Some tickets could not be moved",
"moveFailedHeading": "The following tickets could not be moved:",
"moveFailed": "Failed to move selected tickets",
"deleteDialogTitle": "Delete Selected Tickets",
"deleteDialogDescription_one": "Are you sure you want to delete this ticket? This action cannot be undone.",
"deleteDialogDescription_other": "Are you sure you want to delete these {{count}} tickets? This action cannot be undone.",
"deleting": "Deleting...",
"deleteConfirm_one": "Delete {{count}} Ticket",
"deleteConfirm_other": "Delete {{count}} Tickets",
"deleteSuccess_one": "{{count}} ticket deleted",
"deleteSuccess_other": "{{count}} tickets deleted",
"deletePartialError": "Some tickets could not be deleted",
"deleteFailedHeading": "The following tickets could not be deleted:",
"deleteFailed": "Failed to delete selected tickets",
"bundleDialogTitle": "Bundle Tickets",
"bundleCrossClientWarning": "This bundle spans multiple clients. You'll be asked to confirm before bundling.",
"bundleMasterLabel": "Select Master Ticket",
"bundleMasterPlaceholder": "Select master ticket...",
"bundleSyncUpdates": "Sync updates from master to children (public replies + workflow changes)",
"bundleSyncUpdatesHelp": "Child tickets keep their current status when bundled. Workflow fields are locked on children by default. Internal notes stay on the master.",
"bundleSelectAtLeastTwo": "Select at least two tickets to bundle.",
"bundleSelectMaster": "Select a master ticket.",
"bundleSuccess": "Tickets bundled",
"bundleFailed": "Failed to bundle tickets",
"multiClientConfirmTitle": "Bundle spans multiple clients",
"multiClientConfirmMessage": "This bundle includes tickets from multiple clients. Confirm that you want to proceed.",
"deleteSelected": "Delete Selected",
"exportSelectedTooltip_one": "Export {{count}} selected ticket to CSV",
"exportSelectedTooltip_other": "Export {{count}} selected tickets to CSV",
"exportDisabledTooltip": "Select ticket(s) to export",
"move": {
"dialogTitle": "Move Selected Tickets",
"description": "Select a destination board and status, then confirm moving the selected tickets.",
"destinationBoard": "Destination Board",
"destinationStatus": "Destination Status",
"selectDestinationBoard": "Select destination board...",
"selectDestinationStatus": "Select destination status...",
"unnamedBoard": "Unnamed board",
"noStatusesConfigured": "This board has no ticket statuses configured for selection.",
"loadStatusesFailed": "Failed to load board statuses",
"noTicketsSelected": "No tickets selected.",
"failedItemsHeading": "The following tickets could not be moved:",
"confirm_one": "Move {{count}} Ticket",
"confirm_other": "Move {{count}} Tickets",
"submitting": "Moving...",
"success_one": "{{count}} ticket moved",
"success_other": "{{count}} tickets moved",
"partialFailure": "Some tickets could not be moved",
"failure": "Failed to move selected tickets",
"confirm": "Move {{count}} tickets",
"success": "{{count}} tickets moved"
},
"delete": {
"dialogTitle": "Delete Selected Tickets",
"confirm_one": "Are you sure you want to delete this ticket? This action cannot be undone.",
"confirm_other": "Are you sure you want to delete these {{count}} tickets? This action cannot be undone.",
"button_one": "Delete {{count}} Ticket",
"button_other": "Delete {{count}} Tickets",
"failedItemsHeading": "The following tickets could not be deleted:",
"noTicketsSelected": "No tickets selected.",
"entityFallback": "this ticket",
"submitting": "Deleting...",
"success_one": "{{count}} ticket deleted",
"success_other": "{{count}} tickets deleted",
"partialFailure": "Some tickets could not be deleted",
"failure": "Failed to delete selected tickets",
"confirm": "Are you sure you want to delete these {{count}} tickets? This action cannot be undone.",
"success": "{{count}} tickets deleted"
},
"bundle": {
"dialogTitle": "Bundle Tickets",
"multiClientTitle": "Bundle spans multiple clients",
"multiClientMessage": "This bundle includes tickets from multiple clients. Confirm that you want to proceed.",
"proceed": "Proceed",
"success": "Tickets bundled",
"failure": "Failed to bundle tickets",
"selectAtLeastTwo": "Select at least two tickets to bundle.",
"selectMaster": "Select a master ticket.",
"crossClientWarning": "This bundle spans multiple clients. You'll be asked to confirm before bundling.",
"masterTicket": "Select Master Ticket",
"selectMasterTicket": "Select master ticket...",
"syncUpdates": "Sync updates from master to children (public replies + workflow changes)",
"syncUpdatesHelp": "Child tickets keep their current status when bundled. Workflow fields are locked on children by default. Internal notes stay on the master.",
"childrenDescription": "Children keep their current status; workflow fields are locked on children. Inbound child replies are surfaced below as view-only.",
"checkingMasters": "Checking existing bundles...",
"existingMasterSuffix": "(existing master)",
"existingMasterLocked": "One selected ticket is already a bundle master. It will be used as the master; the others will be added as children.",
"multipleExistingMasters": "Multiple selected tickets are already bundle masters ({{count}}). Unbundle all but one before bundling."
},
"auth": {
"moveRequired": "You must be logged in to move tickets",
"deleteRequired": "You must be logged in to delete tickets",
"assignRequired": "You must be logged in to reassign tickets",
"tagsRequired": "You must be logged in to add tags",
"dueDateRequired": "You must be logged in to update tickets",
"statusRequired": "You must be logged in to update tickets",
"priorityRequired": "You must be logged in to update tickets"
},
"assign": {
"dialogTitle": "Assign Selected Tickets",
"message": "Reassign {{count}} selected ticket(s) to:",
"unassigned": "Not assigned",
"teamHint": "The team lead becomes the primary assignee; other team members are added as additional agents.",
"confirm_one": "Reassign {{count}} Ticket",
"confirm_other": "Reassign {{count}} Tickets",
"submitting": "Reassigning...",
"success_one": "{{count}} ticket reassigned",
"success_other": "{{count}} tickets reassigned",
"partialFailure": "Some tickets could not be reassigned",
"failure": "Failed to reassign selected tickets",
"failedHeading": "The following tickets could not be reassigned:"
},
"tags": {
"dialogTitle": "Add Tags to Selected Tickets",
"message": "Add one or more tags to {{count}} selected ticket(s). Tags already on a ticket are skipped.",
"placeholder": "Type a tag and press Enter",
"confirm_one": "Add Tags to {{count}} Ticket",
"confirm_other": "Add Tags to {{count}} Tickets",
"submitting": "Adding tags...",
"success_one": "Tags added to {{count}} ticket",
"success_other": "Tags added to {{count}} tickets",
"partialFailure": "Tags could not be added to some tickets",
"failure": "Failed to add tags to selected tickets",
"failedHeading": "Tags could not be added to the following tickets:"
},
"dueDate": {
"dialogTitle": "Set Due Date for Selected Tickets",
"message": "Set or clear the due date on {{count}} selected ticket(s).",
"modeSet": "Set to",
"modeClear": "Clear due date",
"placeholder": "Pick a date",
"confirm_one": "Update {{count}} Ticket",
"confirm_other": "Update {{count}} Tickets",
"submitting": "Updating...",
"success_one": "Due date updated on {{count}} ticket",
"success_other": "Due date updated on {{count}} tickets",
"partialFailure": "Due date could not be updated on some tickets",
"failure": "Failed to update due date on selected tickets",
"failedHeading": "Due date could not be updated on the following tickets:"
},
"status": {
"dialogTitle": "Change Status for Selected Tickets",
"message": "Set the status for {{count}} selected ticket(s):",
"placeholder": "Select a status",
"loading": "Loading statuses...",
"confirm_one": "Update {{count}} Ticket",
"confirm_other": "Update {{count}} Tickets",
"submitting": "Updating...",
"success_one": "Status updated on {{count}} ticket",
"success_other": "Status updated on {{count}} tickets",
"partialFailure": "Status could not be updated on some tickets",
"failure": "Failed to update status on selected tickets",
"failedHeading": "Status could not be updated on the following tickets:"
},
"priority": {
"dialogTitle": "Change Priority for Selected Tickets",
"message": "Set the priority for {{count}} selected ticket(s):",
"placeholder": "Select a priority",
"confirm_one": "Update {{count}} Ticket",
"confirm_other": "Update {{count}} Tickets",
"submitting": "Updating...",
"success_one": "Priority updated on {{count}} ticket",
"success_other": "Priority updated on {{count}} tickets",
"partialFailure": "Priority could not be updated on some tickets",
"failure": "Failed to update priority on selected tickets",
"failedHeading": "Priority could not be updated on the following tickets:"
}
},
"quickAdd": {
"dialogTitle": "Quick Add Ticket",
"dialogLabel": "Quick Add Ticket Dialog",
"formLabel": "Quick Add Ticket Form",
"requiredFieldsTitle": "Please fill in the required fields:",
"descriptionLabel": "Description",
"clientPlaceholder": "Select Client *",
"noContactsForSelectedClient": "No contacts for selected client",
"noLocationsForSelectedClient": "No locations for selected client",
"locationNone": "None",
"selectLocation": "Select location",
"selectBoard": "Select Board *",
"assignedTo": "Assigned To",
"assignToPlaceholder": "Assign To",
"additionalAgents": "Additional Agents",
"additionalAgentsPlaceholder": "Additional agents...",
"selectCategory": "Select category",
"selectItilCategory": "Select ITIL category",
"selectStatus": "Select Status *",
"selectPriority": "Select Priority *",
"dueDate": "Due Date",
"selectDate": "Select date",
"timePlaceholder": "Time",
"noTimeDefault": "No time set - defaults to 12:00 AM",
"descriptionImagesWarning": "Ticket created, but pasted images could not be attached to the description.",
"teamAssignmentFailed": "Ticket created but team assignment failed",
"tagCreationFailed_one": "{{count}} tag could not be created",
"tagCreationFailed_other": "{{count}} tags could not be created",
"requiredFieldsHeading": "Please fill in the required fields:",
"titlePlaceholder": "Ticket Title *",
"descriptionPlaceholder": "Description",
"noContactsForClient": "No contacts for selected client",
"selectContact": "Select contact",
"none": "None",
"defaultSuffix": "(Default)",
"noLocationsForClient": "No locations for selected client",
"unnamedLocation": "Unnamed Location",
"boardPlaceholder": "Select Board *",
"assignTo": "Assign To",
"addTeamMembers": "Add Team Members",
"statusPlaceholder": "Select Status *",
"priorityCalculated": "Priority (Calculated)",
"showPriorityMatrix": "Show ITIL Priority Matrix",
"submit": "Add Ticket",
"submitting": "Adding...",
"createAndView": "Create + View Ticket",
"continueEditing": "Continue Editing",
"clipboardDraftMessage": "This quick-add description includes pasted images that have not been attached to a saved ticket yet. Continue editing, or delete the staged images and close?",
"clipboardUploadSessionRequired": "User session is required for clipboard image upload.",
"clipboardUploadFailed": "Clipboard image upload failed.",
"clipboardUploadPartialFailure": "Ticket created, but pasted images could not be attached to the description.",
"teamAssignmentPartialFailure": "Ticket created but team assignment failed",
"tagCreatePartialFailure_one": "{{count}} tag could not be created",
"tagCreatePartialFailure_other": "{{count}} tags could not be created"
},
"itil": {
"calculatedPriority": "Priority (Calculated)",
"selectImpactUrgency": "Select Impact and Urgency to calculate priority",
"matrixTitle": "ITIL Priority Matrix (Impact × Urgency)",
"impactHelp": "How many users/business functions are affected?",
"urgencyHelp": "How quickly does this need to be resolved?",
"impactOptions": {
"one": "1 - High (Critical business function affected)",
"two": "2 - Medium-High (Important function affected)",
"three": "3 - Medium (Minor function affected)",
"four": "4 - Medium-Low (Minimal impact)",
"five": "5 - Low (No business impact)"
},
"urgencyOptions": {
"one": "1 - High (Work cannot continue)",
"two": "2 - Medium-High (Work severely impaired)",
"three": "3 - Medium (Work continues with limitations)",
"four": "4 - Medium-Low (Minor inconvenience)",
"five": "5 - Low (Work continues normally)"
},
"matrixColumns": {
"one": "High Urgency (1)",
"two": "Medium-High Urgency (2)",
"three": "Medium Urgency (3)",
"four": "Medium-Low Urgency (4)",
"five": "Low Urgency (5)"
},
"matrixRows": {
"one": "High Impact (1)",
"two": "Medium-High Impact (2)",
"three": "Medium Impact (3)",
"four": "Medium-Low Impact (4)",
"five": "Low Impact (5)"
},
"impact": "Impact",
"urgency": "Urgency",
"selectImpact": "Select Impact",
"selectUrgency": "Select Urgency",
"calculatePrompt": "Select Impact and Urgency to calculate priority",
"explainer": {
"impact": "Impact: How many users/business functions are affected?",
"urgency": "Urgency: How quickly does this need to be resolved?"
},
"impactLevels": {
"1": "1 - High (Critical business function affected)",
"2": "2 - Medium-High (Important function affected)",
"3": "3 - Medium (Minor function affected)",
"4": "4 - Medium-Low (Minimal impact)",
"5": "5 - Low (No business impact)"
},
"urgencyLevels": {
"1": "1 - High (Work cannot continue)",
"2": "2 - Medium-High (Work severely impaired)",
"3": "3 - Medium (Work continues with limitations)",
"4": "4 - Medium-Low (Minor inconvenience)",
"5": "5 - Low (Work continues normally)"
},
"priorityLevels": {
"1": "Critical (1)",
"2": "High (2)",
"3": "Medium (3)",
"4": "Low (4)",
"5": "Planning (5)"
},
"impactAxis": {
"1": "High Impact (1)",
"2": "Medium-High Impact (2)",
"3": "Medium Impact (3)",
"4": "Medium-Low Impact (4)",
"5": "Low Impact (5)"
},
"urgencyAxis": {
"1": "High\nUrgency (1)",
"2": "Medium-High\nUrgency (2)",
"3": "Medium\nUrgency (3)",
"4": "Medium-Low\nUrgency (4)",
"5": "Low\nUrgency (5)"
}
},
"info": {
"saveTitle": "Save title",
"editTitle": "Edit title",
"saveChanges": "Save Changes",
"saving": "Saving...",
"unsavedChanges": "You have unsaved changes. Click \"Save Changes\" to apply them.",
"saveSuccess": "Changes saved successfully!",
"discardChangesTitle": "Discard Changes",
"discardChangesMessage": "You have unsaved changes. Are you sure you want to discard them?",
"discard": "Discard",
"keepEditing": "Keep Editing",
"statusRequiresSelection": "Select a status for the new board before saving.",
"notAssigned": "Not assigned",
"additionalAgentsTooltip": "Additional Agents:",
"loading": "Loading...",
"tagsCannotBeManaged": "Tags cannot be managed",
"viewEmailNotificationLogs": "View email notification logs",
"changesSaved": "Changes saved successfully!",
"additionalAgents": "Additional Agents:",
"board": "Board",
"itilCategory": "ITIL Category",
"loadingBoardConfig": "Loading...",
"selectStatusForNewBoard": "Select a status for the new board before saving.",
"calculatedPriority": "Calculated Priority:",
"slaStatus": "SLA Status",
"responseSlaBreached": "Response SLA breached",
"resolutionSlaBreached": "Resolution SLA breached",
"editDescription": "Edit description",
"noDescription": "No description found.",
"openEmailNotificationLogs": "View email notification logs",
"clipboardDraftMessage": "This description includes pasted images that were already uploaded as ticket documents. Keep them, or delete them permanently?",
"clearDueDate": "Clear due date",
"paused": "Paused",
"openActivityLog": "View activity log",
"resolveLiveConflict": "Resolve live update conflicts before saving your changes."
},
"properties": {
"timeEntry": "Time Entry",
"ticketTimer": "Ticket Timer - #{{ticketNumber}}",
"timerActiveElsewhere": "Timer active in another window",
"start": "Start",
"pause": "Pause",
"reset": "Reset",
"enterWorkDescription": "Enter work description",
"liveTimerDisabled": "Live ticket timer is disabled for this board.",
"addTimeEntry": "Add Time Entry",
"trackedIntervals": "Tracked Intervals",
"contactInfo": "Contact Info",
"noContactSelected": "No contact selected",
"selectOrChangeContact": "Select or change contact",
"notAvailable": "N/A",
"noLocationSpecified": "No location specified",
"noSpecificLocation": "No specific location",
"defaultSuffix": "(Default)",
"selectLocation": "Select location",
"agentTeam": "Agent team",
"appointmentRequests": "Appointment requests",
"appointmentRequest": "Appointment Request",
"service": "Service",
"requestedDateTime": "Requested Date & Time",
"duration": "Duration",
"approvedAt": "Approved At",
"declineReason": "Decline Reason",
"appointmentFallback": "Appointment",
"lead": "Lead",
"unknown": "Unknown",
"primaryAgent": "Primary Agent",
"unknownAgent": "Unknown Agent",
"noPrimaryAgentAssigned": "No primary agent assigned",
"selectAdditionalAgents": "Select additional agents...",
"assignedTeamFallback": "Assigned Team",
"switchTeamAssignment": "Switch team assignment",
"removeTeamAssignment": "Remove team assignment",
"removeAllTeamMembers": "Remove all team members",
"keepAllTeamMembers": "Keep all team members as individual agents",
"selectMembersToKeep": "Select individual members to keep/remove",
"noTeamMembersFound": "No team members found on this ticket.",
"contact": "Contact",
"createdBy": "Created By",
"location": "Location",
"contactPhone": "Contact Phone",
"clientPhone": "Client Phone",
"contactEmail": "Contact Email",
"clientEmail": "Client Email",
"assignedTeam": "Assigned Team",
"teamLead": "Lead",
"team": "Team",
"noTeamAssigned": "No team assigned",
"additionalAgents": "Additional Agents",
"scheduled": "Scheduled: {{time}}",
"removeTeamMode": {
"removeAll": "Remove all team members",
"keepAll": "Keep all team members as individual agents",
"selective": "Select individual members to keep/remove"
},
"noTeamMembersOnTicket": "No team members found on this ticket.",
"unnamedUser": "Unnamed User"
},
"settings": {
"categories": {
"title": "Categories",
"allBoards": "All Boards",
"filterByBoard": "Filter by board",
"addCategory": "Add Category",
"importStandardCategories": "Import from Standard Categories",
"editCategory": "Edit Category",
"categoryName": "Category Name *",
"enterCategoryName": "Enter category name",
"selectBoard": "Select a board",
"displayOrder": "Display Order",
"enterDisplayOrder": "Enter display order",
"displayOrderHelp": "Controls the order in which categories appear in dropdown menus throughout the platform. Lower numbers appear first.",
"boardChangeWarning": "Changing the board for this parent category will also update all its subcategories to the same board.",
"importTitle": "Import Standard Categories",
"importEmpty": "No standard categories available to import.",
"importDescription": "Select standard categories to import into your organization:",
"targetBoard": "Target Board *",
"selectImportBoard": "Select a board for imported categories",
"targetBoardHelp": "All imported categories will be assigned to this board",
"importConflictTitle": "Resolve Import Conflicts",
"importConflictDescription": "The following items have conflicts. Choose how to resolve each:",
"nameColumn": "Name",
"descriptionColumn": "Description",
"orderColumn": "Order",
"skipItem": "Skip this item",
"importWithNewName": "Import with new name:",
"categoryNameConflict": "A category with this name already exists.",
"displayOrderConflict": "Display order {{order}} is already in use.",
"importWithOrder": "Import with order {{order}}",
"importStandard": "Import Standard Categories",
"editTitle": "Edit Category",
"conflictsTitle": "Resolve Import Conflicts",
"name": "Name",
"description": "Description",
"enterName": "Enter category name",
"targetBoardPlaceholder": "Select a board for imported categories",
"noStandardCategories": "No standard categories available to import.",
"importSelected": "Import Selected",
"importWithResolutions": "Import With Resolutions",
"conflictDescription": "Description conflict",
"nameConflict": "Name conflict",
"orderConflict": "Order conflict",
"renameTo": "Import with new name:",
"fetchFailed": "Failed to fetch categories",
"validateDeleteFailed": "Failed to validate category deletion.",
"deleteSuccess": "Category deleted successfully",
"deleteFailed": "Failed to delete category",
"nameRequired": "Category name is required",
"saveSuccess": "Category updated successfully",
"saveFailed": "Failed to save category",
"createSuccess": "Category created successfully",
"importBoardRequired": "Please select a board for the imported categories",
"importMissingParents": "Cannot import subcategories without their parent categories. Please also select: {{parents}}",
"importSuccess": "Categories imported successfully",
"importFailed": "Failed to import categories",
"fetchAvailableFailed": "Failed to fetch available categories for import",
"noneTopLevelCategory": "None (Top-level category)",
"noBoard": "No board",
"loadingBoards": "Loading boards…",
"boardRequiredHelp": "Required for top-level categories",
"parentCategoryOptional": "Parent Category (Optional)",
"selectParentCategory": "Select parent category",
"parentHelpWithBoard": "Select a parent to create a subcategory, or leave empty for top-level",
"parentHelpWithoutBoard": "Select a board first, or pick a parent category to inherit its board",
"creating": "Creating..."
},
"display": {
"responseStateTrackingTitle": "Response State Tracking",
"responseStateTrackingDescription": "When enabled, tickets automatically track who needs to respond next (awaiting client or awaiting internal response). Disabling this hides response state badges, filters, and related SLA pause options.",
"responseStateTrackingEnabled": "Response state tracking enabled",
"responseStateTrackingDisabled": "Response state tracking disabled",
"title": "Ticket Display Preferences",
"description": "Configure how your Ticketing dashboard displays columns and timestamps for your team.",
"dateTimeFormat": "Date/Time Format",
"ticketListColumns": "Ticket List Columns",
"showTags": "Show Tags",
"displayUnderTitle": "Display under Title",
"displayInSeparateColumn": "Display in separate column",
"saveSuccess": "Ticket display settings saved",
"saveFailed": "Failed to save display settings",
"saving": "Saving…",
"preferencesTitle": "Ticket Display Preferences",
"preferencesDescription": "Configure how your Ticketing dashboard displays columns and timestamps for your team.",
"columnsTitle": "Ticket List Columns",
"columns": {
"sla": "SLA",
"createdBy": "Created By",
"actions": "Actions",
"tags": "Tags"
},
"requiredSuffix": "(required)",
"tagsUnderTitle": "Display under Title",
"tagsSeparateColumn": "Display in separate column"
}
},
"export": {
"title": "Export Tickets",
"fieldsToExport": "Fields to export",
"selectedFields_one": "{{count}} of {{total}} field selected",
"selectedFields_other": "{{count}} of {{total}} fields selected",
"selectedTicketsSummary_one": "Exporting {{count}} selected ticket",
"selectedTicketsSummary_other": "Exporting {{count}} selected tickets",
"appliedFiltersSummary_one": "(of {{count}} ticket matching applied filters)",
"appliedFiltersSummary_other": "(of {{count}} tickets matching applied filters)",
"exporting": "Exporting tickets...",
"completeTitle": "Export Complete",
"completeDescription_one": "Successfully exported {{count}} ticket to CSV.",
"completeDescription_other": "Successfully exported {{count}} tickets to CSV.",
"exportFailed": "Failed to export tickets",
"summary_one": "Exporting {{selected}} selected ticket",
"summary_other": "Exporting {{selected}} selected tickets",
"summaryMatching_one": "(of {{total}} ticket matching applied filters)",
"summaryMatching_other": "(of {{total}} tickets matching applied filters)",
"fieldsTitle": "Fields to export",
"selectAll": "Select all",
"deselectAll": "Deselect all",
"selectedCount": "{{selected}} of {{total}} fields selected",
"confirm_one": "Export {{count}} Ticket",
"confirm_other": "Export {{count}} Tickets",
"completeMessage_one": "Successfully exported {{count}} ticket to CSV.",
"completeMessage_other": "Successfully exported {{count}} tickets to CSV.",
"done": "Done",
"failed": "Failed to export tickets",
"fields": {
"isClosed": "Is Closed",
"board": "Board",
"contact": "Contact",
"assignedTeam": "Assigned Team",
"enteredBy": "Entered By",
"updatedBy": "Updated By",
"closedBy": "Closed By",
"enteredAt": "Entered At",
"updatedAt": "Updated At",
"closedAt": "Closed At",
"responseState": "Response State",
"ticketOrigin": "Ticket Origin",
"tags": "Tags"
},
"appliedFiltersSummary": "(of {{count}} ticket matching applied filters)",
"completeMessage": "Successfully exported {{count}} ticket to CSV.",
"confirm": "Export {{count}} Ticket",
"selectedTicketsSummary": "Exporting {{count}} selected ticket"
},
"materials": {
"title": "Materials",
"productPlaceholder": "Select a product...",
"searchProducts": "Search products...",
"noProductsFound": "No products found",
"loadingPrices": "Loading prices...",
"noPrices": "No prices configured for this product",
"selectCurrency": "Select currency...",
"descriptionOptional": "Description (optional)",
"additionalNotes": "Additional notes...",
"addMaterial": "Add Material",
"adding": "Adding...",
"loading": "Loading materials...",
"empty": "No materials added to this ticket.",
"billed": "Billed",
"pending": "Pending",
"unknownProduct": "Unknown Product",
"unbilled": "Unbilled ({{currency}}):",
"productRequired": "Please select a product",
"currencyRequired": "Please select a currency",
"quantityMin": "Quantity must be at least 1",
"added": "Material added",
"removed": "Material removed",
"loadFailed": "Failed to load materials",
"addFailed": "Failed to add material",
"removeFailed": "Failed to remove material",
"product": "Product",
"price": "Price",
"quantity": "Quantity",
"total": "Total",
"selectProduct": "Select a product...",
"noPricesConfigured": "No prices configured for this product",
"qty": "Qty",
"rate": "Rate",
"status": "Status",
"addSuccess": "Material added",
"removeSuccess": "Material removed",
"clientRequired": "A client must be assigned to this ticket before materials can be added."
},
"watchList": {
"title": "Watch List",
"contactTab": "Contact",
"internalTab": "Internal",
"emailTab": "Email",
"ticketClient": "Ticket client",
"allContacts": "All contacts",
"loadingContacts": "Loading...",
"searchAllContacts": "Search all contacts",
"selectContact": "Select contact",
"selectUserOrTeam": "Select user or team",
"selectUser": "Select user",
"emailPlaceholder": "name@example.com",
"addEmail": "Add Email",
"addUser": "Add User",
"addContact": "Add Contact",
"empty": "No watchers added.",
"updateFailed": "Unable to update watch list. Please try again.",
"validEmail": "Enter a valid email address.",
"selectUserToAdd": "Select a user to add.",
"selectedUserInvalidEmail": "Selected user does not have a valid email address.",
"teamHasNoMembers": "Team has no members.",
"noTeamMembersWithValidEmails": "No team members with valid email addresses.",
"selectContactToAdd": "Select a contact to add.",
"selectedContactInvalidEmail": "Selected contact does not have a valid email address.",
"userBadge": "User",
"contactBadge": "Contact",
"removeWatcher": "Remove watcher",
"tabs": {
"contact": "Contact",
"internal": "Internal",
"email": "Email"
},
"scope": {
"ticketClient": "Ticket client",
"allContacts": "All contacts"
},
"placeholders": {
"loading": "Loading...",
"searchAllContacts": "Search all contacts",
"selectContact": "Select contact",
"selectUserOrTeam": "Select user or team",
"selectUser": "Select user",
"email": "name@example.com"
}
},
"emailNotifications": {
"title": "Email Notifications",
"loading": "Loading…",
"empty": "No email notifications found.",
"time": "Time",
"recipient": "Recipient",
"subject": "Subject",
"status": "Status",
"error": "Error",
"unknownError": "Unknown error",
"loadMore": "Load more"
},
"categoryPicker": {
"title": "Category Picker",
"placeholder": "Select categories...",
"noCategory": "No Category",
"addNew": "Add new category",
"itilBadge": "ITIL",
"categoriesCount_one": "{{count}} category",
"categoriesCount_other": "{{count}} categories",
"excludingNoCategory": "excluding No Category",
"excludingCategory": "excluding {{category}}",
"excludingCategoriesCount_one": "excluding {{count}} category",
"excludingCategoriesCount_other": "excluding {{count}} categories",
"selectedCount_one": "{{count}} category",
"selectedCount_other": "{{count}} categories",
"excludingCount_one": "excluding {{count}} category",
"excludingCount_other": "excluding {{count}} categories",
"excludingPrefix": "excluding {{name}}",
"excludingCount": "excluding {{count}} category",
"selectedCount": "{{count}} categories"
},
"navigation": {
"previousTicket": "Previous ticket",
"nextTicket": "Next ticket"
},
"debug": {
"commentMetadata": "Comment metadata",
"summary": "Summary",
"noPrioritizedFields": "No prioritized fields present.",
"rawMetadata": "Raw metadata",
"rawJson": "Raw JSON",
"copy": "Copy",
"copied": "Copied",
"copyFailed": "Copy failed",
"close": "Close"
},
"validation": {
"categoryNameRequired": "Category name is required",
"boardRequiredForTopLevelCategory": "Board is required for top-level categories",
"selectBoardForImport": "Please select a board for the imported categories",
"importParentCategoriesRequired": "Cannot import subcategories without their parent categories. Please also select: {{parents}}",
"quickAdd": {
"clientRequired": "Please select a client",
"boardRequired": "Please select a board",
"statusRequired": "Please select a status",
"priorityRequired": "Please select a priority",
"impactRequired": "Please select an impact",
"urgencyRequired": "Please select an urgency"
},
"category": {
"nameRequired": "Category name is required",
"boardRequiredForTopLevel": "Board is required for top-level categories"
},
"materials": {
"productRequired": "Please select a product",
"currencyRequired": "Please select a currency",
"quantityMin": "Quantity must be at least 1"
},
"watchList": {
"invalidEmail": "Enter a valid email address.",
"userRequired": "Select a user to add.",
"contactRequired": "Select a contact to add.",
"selectedUserMissingEmail": "Selected user does not have a valid email address.",
"selectedContactMissingEmail": "Selected contact does not have a valid email address.",
"teamHasNoMembers": "Team has no members.",
"teamMembersMissingEmails": "No team members with valid email addresses."
}
},
"errors": {
"clipboardUploadSessionRequired": "User session is required for clipboard image upload.",
"clipboardUploadFailed": "Clipboard image upload failed.",
"createTicketFailed": "Failed to create ticket. Please try again.",
"loadBoardsFailed": "Failed to load boards",
"createCategoryFailed": "Failed to create category",
"fetchCategoriesFailed": "Failed to fetch categories",
"validateCategoryDeletionFailed": "Failed to validate category deletion.",
"deleteCategoryFailed": "Failed to delete category",
"saveCategoryFailed": "Failed to save category",
"fetchImportCategoriesFailed": "Failed to fetch available categories for import",
"importCategoriesFailed": "Failed to import categories",
"updateTicketsAuthRequired": "You must be logged in to update tickets",
"addCommentsAuthRequired": "You must be logged in to add comments",
"performActionAuthRequired": "You must be logged in to perform this action",
"deleteTicketsAuthRequired": "You must be logged in to delete tickets",
"fetchTicketsFailed": "Failed to fetch tickets",
"authRequiredMove": "You must be logged in to move tickets",
"authRequiredDelete": "You must be logged in to delete tickets",
"authRequiredUpdate": "You must be logged in to update tickets",
"authRequiredComment": "You must be logged in to add comments",
"authRequiredAction": "You must be logged in to perform this action",
"loadBundledTickets": "Failed to load bundled tickets",
"fetchTickets": "Failed to fetch tickets",
"fetchCategories": "Failed to fetch categories",
"loadBoards": "Failed to load boards",
"exportFailed": "Failed to export tickets",
"saveChanges": "Failed to save changes",
"updateField": "Failed to update {{field}}",
"addComment": "Failed to add comment",
"loadMaterials": "Failed to load materials",
"addMaterial": "Failed to add material",
"removeMaterial": "Failed to remove material",
"updateWatchList": "Unable to update watch list. Please try again.",
"fetchCategoryImports": "Failed to fetch available categories for import",
"validateDeletionFailed": "Failed to validate deletion. Please try again.",
"deleteTicketUnexpected": "An unexpected error occurred while deleting the ticket."
},
"ticketSection": {
"title": "Appointment Request",
"service": "Service",
"publicRequest": "Requested Date & Time",
"approvedBy": "Approved By",
"preferred": "Preferred",
"on": "on",
"minutes": "minutes",
"invalidDateTime": "Invalid date/time",
"declined": "Declined"
},
"categories": {
"itilBadge": "ITIL"
},
"tickets": {
"conversation": {
"closeStatus": "Close status",
"noStatusChange": "Do not change status"
}
},
"common": {
"continueEditing": "Continue Editing",
"cancel": "Cancel"
},
"details": {
"bundle": {
"childrenDescription": "Child tickets bundled in this master ticket"
}
},
"invalidTicketData": "Invalid ticket data",
"timeEntries": {
"title": "Logged Time",
"loading": "Loading time entries…",
"loadError": "Could not load time entries",
"empty": "No time has been logged on this ticket yet.",
"myEntries": "My entries",
"otherTeam": "Other team members",
"othersAnonymized": "{{count}} entries by other team members ({{duration}})",
"noService": "No service",
"unknownUser": "Unknown user",
"statusDraft": "Draft",
"statusSubmitted": "Submitted",
"statusApproved": "Approved",
"statusChangesRequested": "Changes Requested",
"statusUnknown": "Unknown",
"edit": "Edit time entry",
"delete": "Delete time entry",
"deleteConfirmTitle": "Delete time entry?",
"deleteConfirmMessage": "This will permanently delete the time entry. This action cannot be undone.",
"deleteConfirmAction": "Delete",
"duration": {
"hr": "hr",
"hrs": "hrs",
"min": "min"
}
},
"liveUpdates": {
"editing": {
"single": "{{name}} is editing",
"multiple_one": "{{name}} and {{count}} other are editing",
"multiple_other": "{{name}} and {{count}} others are editing"
},
"remoteFieldUpdated": "{{name}} updated {{field}}",
"connection": {
"reconnecting": "Live updates offline - reconnecting...",
"unavailable": "Live updates unavailable"
}
},
"delete": {
"success": "Ticket #{{number}} deleted successfully.",
"error": "Failed to delete ticket. Please try again.",
"validationError": "Failed to validate deletion. Please try again."
},
"boardPicker": {
"inactiveBadge": "Inactive",
"noBoard": "No Board",
"selectedCount_one": "{{count}} board",
"selectedCount_other": "{{count}} boards",
"excludingPrefix": "excluding {{name}}",
"excludingCount_one": "excluding {{count}} board",
"excludingCount_other": "excluding {{count}} boards",
"placeholder": "Filter by board",
"title": "Board Picker",
"searchPlaceholder": "Search boards...",
"excludingCount": "excluding {{count}} boards",
"selectedCount": "{{count}} boards",
"statusActive": "Active",
"statusAll": "All",
"statusInactive": "Inactive"
},
"checklist": {
"addFailed": "Failed to add checklist item",
"addItem": "Add",
"addItemPlaceholder": "Add a checklist item",
"applyTemplate": "Apply template",
"applyTemplateFailed": "Failed to apply checklist template",
"clickToRename": "Click to rename",
"deleteFailed": "Failed to delete checklist item",
"deleteItem": "Delete item",
"empty": "No checklist items yet.",
"itemMenu": "Checklist item menu",
"loadTemplatesFailed": "Failed to load checklist templates",
"loading": "Loading checklist...",
"markOptional": "Mark as optional",
"markRequired": "Mark as required",
"moveDown": "Move down",
"moveUp": "Move up",
"noTemplates": "No templates available.",
"progress": "{{done}} of {{total}} complete",
"renameFailed": "Failed to rename checklist item",
"reorderFailed": "Failed to reorder checklist items",
"requiredBadge": "Required",
"templateAlreadyApplied": "This template was already applied to this ticket.",
"templateApplied": "Checklist template applied.",
"templatesLoading": "Loading templates...",
"title": "Checklist",
"toggleFailed": "Failed to update checklist item",
"updateFailed": "Failed to update checklist item"
},
"integration": {
"loadTicketFailed": "Failed to load ticket",
"noUserSession": "No user session found"
}
}