export const en = { 'templates.description': 'Reuse a proven project setup. Manage published templates and see which projects inherit their configuration.', 'templates.updated': 'Project templates updated.', 'templates.fromProject': 'Start with an existing project', 'templates.fromProjectHelp': 'Open a project and choose “Save as new template” to capture its configuration.', 'templates.browseProjects': 'Browse projects', 'templates.empty': 'No published templates yet', 'templates.emptyHelp': 'Save a project as a template to reuse its settings. Internal project baselines are kept out of this list.', 'templates.published': 'Published project templates', 'templates.linkedCount': { one: '{count} linked project', other: '{count} linked projects', }, 'templates.savedFrom': 'Saved from {project} ({key}).', 'templates.sourceUnavailable': 'Source project unavailable', 'templates.edit': 'Edit', 'templates.use': 'Use template', 'templates.createTitle': 'Save {project} as a template', 'templates.createDescription': 'Choose the configuration to reuse in future projects.', 'templates.editTitle': 'Edit {name}', 'templates.editDescription': 'Refresh the template from its source project and review the impact on linked projects.', 'templates.defaultName': '{project} template', 'templates.details': 'Template details', 'templates.name': 'Template name', 'templates.namePlaceholder': 'Foundation template', 'templates.slug': 'Template slug', 'templates.slugPlaceholder': 'foundation-template', 'templates.slugHelp': 'Slugs are normalized automatically. After creation, the slug cannot be changed.', 'templates.slugLocked': 'The slug is locked so existing template references remain stable.', 'templates.groups': 'Configuration groups', 'templates.createGroupsHelp': 'Only selected groups are saved. Related groups required by the workflow are included automatically.', 'templates.editGroupsHelp': 'Saving rebuilds selected groups from the current source project. Required workflow groups are included automatically.', 'templates.impact': 'Template impact', 'templates.inheritance': 'Inheritance', 'templates.cleanStart': 'Tickets and other operational ticket data are never copied. The source project stays unchanged.', 'templates.refreshHelp': 'Inherited groups follow the refreshed template. Local overrides stay unchanged. Removed groups stay local to each project.', 'templates.linkedWarning': 'Linked projects will be affected', 'templates.linkedImpact': 'Saving updates the baseline for {count} linked projects. Inherited groups follow the new configuration; existing local overrides stay unchanged.', 'templates.acknowledge': 'I understand that projects inheriting from this template will be affected.', 'templates.saveNew': 'Save new template', 'templates.saveChanges': 'Save template changes', 'templates.missingSource': 'This template cannot be refreshed', 'templates.missingSourceHelp': 'The source project is no longer available. You can still use the saved template configuration to create a project.', 'templates.deleteTitle': 'Delete {name}', 'templates.delete': 'Delete template', 'templates.deleting': 'Deleting template…', 'templates.deleteHelp': 'This permanently removes the reusable template. It will no longer be available for new projects.', 'templates.deleteImpact': '{count} linked projects will stop inheriting from this template. Their current configuration and tickets are kept.', 'workflow.title': 'Board workflow', 'workflow.pageTitle': '{project} · Board workflow', 'workflow.description': 'Organize your board into columns and give each stage the statuses your team needs.', 'workflow.updated': 'Workflow updated.', 'workflow.backlog': 'Backlog', 'workflow.offBoard': 'Off the board', 'workflow.backlogDescription': 'Your intake queue. Tickets with these statuses stay outside the board columns.', 'workflow.columns': 'Board columns', 'workflow.columnsDescription': 'Columns appear from left to right in this order. Edit a column to change its name or position.', 'workflow.emptyColumns': 'No board columns yet', 'workflow.emptyColumnsDescription': 'Add your first column to start organizing tickets on the board.', 'workflow.addColumn': 'Add column', 'workflow.editColumn': 'Edit column', 'workflow.deleteColumn': 'Delete column?', 'workflow.addColumnDescription': 'The column is added at the end of the board with a first status of the same name.', 'workflow.editColumnDescription': 'Rename this column or move it to a different position. Its statuses keep their names.', 'workflow.deleteColumnDescription': 'Delete “{name}”? Its statuses move to the backlog and their tickets keep their status. Remaining columns are reordered automatically.', 'workflow.addStatus': 'Add status', 'workflow.editStatus': 'Rename status', 'workflow.deleteStatus': 'Delete status?', 'workflow.statusContext': 'This status belongs to {context}.', 'workflow.deleteStatusDescription': 'Delete “{name}”? Tickets using it are assigned to “{replacement}”, the first remaining status in {context}. Its move rules are removed.', 'workflow.columnName': 'Column name', 'workflow.statusName': 'Status name', 'workflow.position': 'Position', 'workflow.positionValue': 'Position {position}', 'workflow.positionHelp': 'Choose a position from 1 to {count}. Other columns shift automatically.', 'workflow.statusesIn': 'Statuses in {context}', 'workflow.renameStatus': 'Rename status {name}', 'workflow.removeStatus': 'Delete status {name}', 'workflow.changeColumn': 'Edit column {name}', 'workflow.removeColumn': 'Delete column {name}', 'workflow.addStatusTo': 'Add status to {context}', 'workflow.lastStatus': 'Keep at least one status in this group. The last status cannot be deleted.', 'workflow.transitions': 'Status moves', 'workflow.transitionsDescription': 'Choose exactly where each status is allowed to move next.', 'workflow.sourceStatus': 'From status', 'workflow.directionHelp': 'Rules apply in one direction. Select another source to configure the return move.', 'workflow.targetsFrom': 'Allowed destinations from {name}', 'workflow.targetHelp': 'Checked destinations are allowed. Unchecked destinations are forbidden. Save to apply these rules to ticket moves and board drop targets.', 'workflow.allowed': 'Allowed', 'workflow.notAllowed': 'Not allowed', 'workflow.noMovesHelp': 'With no destinations selected, tickets cannot leave this status after you save.', 'workflow.noStatuses': 'Add a status to configure its allowed destinations.', 'workflow.unsavedMoves': 'Unsaved changes', 'workflow.savedMoves': 'Saved destinations: {count}', 'workflow.resetMoves': 'Reset changes', 'workflow.saveMoves': 'Save moves', 'workflow.noTargets': 'No other statuses exist yet.', 'workflow.confirmDelete': 'Delete', 'security.title': 'Security settings', 'security.passwordTitle': 'Update password', 'security.passwordDescription': 'Use a long, unique password to keep your account secure.', 'security.currentPassword': 'Current password', 'security.newPassword': 'New password', 'security.confirmPassword': 'Confirm password', 'security.savePassword': 'Save password', 'security.savingPassword': 'Saving password…', 'security.passwordSaved': 'Password saved.', 'security.twoFactorTitle': 'Two-factor authentication', 'security.twoFactorDescription': 'Add a second layer of protection with a code from your authenticator app.', 'security.enabledDescription': 'Your authenticator app provides a six-digit code when you sign in. Keep your recovery codes somewhere safe.', 'security.enabled': 'Enabled', 'security.disabled': 'Disabled', 'security.pending': 'Awaiting confirmation', 'security.enable': 'Enable 2FA', 'security.disable': 'Disable 2FA', 'security.continueSetup': 'Continue setup', 'security.disableTitle': 'Disable two-factor authentication?', 'security.disableDescription': 'You will no longer need an authenticator code to sign in. Your existing recovery codes will be removed.', 'security.setupTitle': 'Set up your authenticator', 'security.setupDescription': 'Scan this QR code with a TOTP authenticator app, or enter the setup key manually.', 'security.setupEnabled': 'Two-factor authentication enabled', 'security.setupEnabledDescription': 'Finish adding this account to your authenticator app and save your recovery codes.', 'security.verifyTitle': 'Verify authentication code', 'security.verifyDescription': 'Enter the six-digit code from your authenticator app to finish enabling two-factor authentication.', 'security.authenticationCode': 'Authentication code', 'security.manualKey': 'Manual setup key', 'security.copyKey': 'Copy key', 'security.copied': 'Copied', 'security.copyError': 'Copying failed. Select the key and copy it manually.', 'security.confirm': 'Confirm', 'security.continue': 'Continue', 'security.loadingSetup': 'Loading authenticator setup…', 'security.setupPendingDescription': 'Protection starts after you confirm a code. Closing this dialog keeps setup unfinished; you can continue from this page.', 'security.confirmAgain': 'Your session or password confirmation has expired. Reload this page and confirm your password to continue.', 'security.setupError': 'Authenticator setup could not be loaded. Please try again.', 'security.recoveryError': 'Recovery codes could not be loaded. Please try again.', 'security.recoveryTitle': '2FA recovery codes', 'security.recoveryDescription': 'Recovery codes let you regain access if you lose your authenticator. Store them in a secure password manager.', 'security.hideRecovery': 'Hide recovery codes', 'security.viewRecovery': 'View recovery codes', 'security.loadingRecovery': 'Loading recovery codes…', 'security.regenerate': 'Regenerate codes', 'security.recoveryOnce': 'Each recovery code can be used once. Hiding this section removes the codes from this page.', 'security.regenerateTitle': 'Regenerate recovery codes?', 'security.regenerateDescription': 'All previous recovery codes will stop working. Save the new codes in a secure place.', 'applications.title': 'Applications', 'applications.description': 'Create API keys for tools that use KanbanGit with your account permissions. Delete an application to revoke its access.', 'applications.saveKey': 'Save this API key now.', 'applications.keyOnce': 'This key is shown only after creation. It will not be shown again after you leave this page.', 'applications.apiKey': 'API key', 'applications.create': 'Create application', 'applications.nameDescription': 'Name the tool that will receive an API key.', 'applications.name': 'Application name', 'applications.namePlaceholder': 'For example, Claude Desktop', 'applications.creating': 'Creating application…', 'applications.saved': 'Saved applications', 'applications.hiddenKeys': 'Existing keys stay hidden. Create a new application when another key is needed.', 'applications.empty': 'No applications have been created yet.', 'applications.created': 'Created:', 'applications.lastUsed': 'Last used:', 'applications.never': 'Never', 'applications.delete': 'Delete', 'applications.deleteNamed': 'Delete {name}', 'applications.deleteTitle': 'Delete application?', 'applications.deleteDescription': '{name} will lose access immediately. This cannot be undone.', 'common.back': 'Back', 'common.done': 'Done', 'criteria.title': 'Acceptance criteria', 'criteria.progress': '{completed} of {total} complete', 'criteria.empty': 'No acceptance criteria yet.', 'criteria.required': 'Enter a criterion or remove this row.', 'criteria.edit': 'Edit checklist', 'criteria.preview': 'Preview checklist', 'criteria.item': 'Criterion {number}', 'criteria.complete': 'Complete criterion {number}: {text}', 'criteria.indent': 'Indent criterion {number}', 'criteria.outdent': 'Outdent criterion {number}', 'criteria.remove': 'Remove criterion {number}', 'criteria.add': 'Add criterion', 'criteria.hint': 'Use the indent buttons or Alt + Left/Right in a text field to nest criteria. Checking a parent also checks its children. Removing a parent keeps its children.', 'criteria.unsaved': 'Checklist changes will be saved with the ticket.', 'criteria.saving': 'Saving checklist…', 'criteria.saveError': 'Checklist status could not be saved. Please try again.', 'board.title': '{name} board', 'board.description': 'Work in your configured workflow. Tickets without a board column stay in the backlog.', 'board.columns': 'Workflow columns', 'board.selectColumn': 'Choose a column', 'board.columnOption': '{name} ({count})', 'board.scrollHint': 'Scroll horizontally to explore all columns.', 'board.openBacklog': 'Open backlog', 'board.backToProject': 'Project overview', 'board.empty.title': 'No workflow columns yet', 'board.empty.description': 'Set up columns to start tracking work on this board.', 'board.emptyColumn': 'No tickets in this column.', 'board.emptyStatus': 'No tickets in this status.', 'board.noStatuses': 'No statuses configured for this column.', 'board.moveTicket': 'Move {key}', 'board.updateStatus': 'Update status', 'board.updatingStatus': 'Updating…', 'board.noMoves': 'No allowed moves', 'board.drag': 'Drag to move', 'board.dragTicket': 'Drag {key} to change status', 'board.dragHint': 'Drag a handle to a highlighted column, or use the status controls. Press Escape to cancel.', 'board.dropHint': 'Drop on a column. Hold near an edge to scroll.', 'board.dragging': 'Dragging {key}. Drop on an allowed column or press Escape to cancel.', 'board.chooseStatus': 'Choose a destination status', 'board.chooseStatusDescription': 'More than one status is available for {key} in this column.', 'board.targetStatus': 'Destination status', 'board.noMovesDescription': 'This status does not allow moving anywhere else.', 'backlog.title': '{name} backlog', 'backlog.description': 'Shape incoming work without losing sight of parent and child tickets.', 'backlog.openBoard': 'Open board', 'backlog.backToProject': 'Project overview', 'backlog.moveTicket': 'Move {key}', 'backlog.filters.title': 'Find backlog tickets', 'backlog.filters.description': 'Filter this view locally. Matching child tickets keep their parent context visible.', 'backlog.filters.search': 'Search', 'backlog.filters.searchPlaceholder': 'Key, title, description, or metadata', 'backlog.filters.type': 'Type', 'backlog.filters.allTypes': 'All types', 'backlog.filters.priority': 'Priority', 'backlog.filters.allPriorities': 'All priorities', 'backlog.filters.status': 'Status', 'backlog.filters.allStatuses': 'All backlog statuses', 'backlog.filters.assignee': 'Assignee', 'backlog.filters.allAssignees': 'All assignees', 'backlog.filters.clear': 'Clear filters', 'backlog.filters.parentContext': 'Parent context', 'backlog.filters.empty.title': 'No tickets match these filters', 'backlog.filters.empty.description': 'Try a broader search or clear the filters to see the complete backlog.', 'backlog.results.title': 'Backlog tickets', 'backlog.results.count': 'Showing {count} of {total} tickets', 'backlog.empty.title': 'Your backlog is clear', 'backlog.empty.description': 'New tickets without a workflow column will appear here.', 'backlog.empty.action': 'Create the first ticket', 'backlog.tree.expand': 'Expand children of {key}', 'backlog.tree.collapse': 'Collapse children of {key}', 'backlog.tree.expandAll': 'Expand all', 'backlog.tree.collapseAll': 'Collapse all', 'projectCreation.title': 'Create a project', 'projectCreation.description': 'Give your work a home. Start fresh or reuse a setup that already works for your team.', 'projectCreation.start': 'How would you like to start?', 'projectCreation.scratch': 'Start from scratch', 'projectCreation.scratchDescription': 'Create an empty project with the default setup.', 'projectCreation.duplicate': 'Duplicate a project', 'projectCreation.duplicateDescription': 'Choose an existing project and copy selected settings.', 'projectCreation.template': 'Use a template', 'projectCreation.templateDescription': 'Start with a saved, reusable project configuration.', 'projectCreation.noProjects': 'No accessible projects are available to copy yet.', 'projectCreation.noTemplates': 'No published templates are available yet.', 'projectCreation.details': 'Project details', 'projectCreation.name': 'Project name', 'projectCreation.namePlaceholder': 'Platform engineering', 'projectCreation.key': 'Project key', 'projectCreation.keyPlaceholder': 'CORE', 'projectCreation.keyHelp': 'Use up to 5 letters or numbers. Keys are unique and converted to uppercase.', 'projectCreation.copyTitle': 'Choose what to copy', 'projectCreation.copyHelp': 'Copy configuration into an independent project. Select only what you need.', 'projectCreation.sourceProject': 'Source project', 'projectCreation.selectProject': 'Select a source project', 'projectCreation.copyOptions': 'Configuration areas', 'projectCreation.copyDefaults': 'Unselected areas keep the default setup. You can also continue without copying any settings.', 'projectCreation.chooseTemplate': 'Choose a template', 'projectCreation.templateLabel': 'Template', 'projectCreation.selectTemplate': 'Select a template', 'projectCreation.templateHelp': 'The project stays linked to this template. Inherited areas follow its configuration; you can override them in project settings.', 'projectCreation.includedAreas': 'Included configuration', 'projectCreation.templateDefaults': 'This template uses the default project setup.', 'projectCreation.summary': 'Your new project', 'projectCreation.untitled': 'Add a project name', 'projectCreation.ticketPreview': 'First ticket key', 'projectCreation.setup': 'Starting point', 'projectCreation.cleanStart': 'Every project starts with an empty backlog and its own ticket numbering. Tickets and their history are never copied.', 'projectCreation.submit': 'Create project', 'projectCreation.creating': 'Creating project…', 'projectCreation.areas.projectSettings.label': 'Project settings', 'projectCreation.areas.projectSettings.description': 'Story points and author visibility.', 'projectCreation.areas.boardColumns.label': 'Board columns', 'projectCreation.areas.boardColumns.description': 'Columns and their order on the board.', 'projectCreation.areas.ticketStatuses.label': 'Ticket statuses', 'projectCreation.areas.ticketStatuses.description': 'Statuses and their board columns.', 'projectCreation.areas.statusTransitions.label': 'Status transitions', 'projectCreation.areas.statusTransitions.description': 'Allowed moves between statuses.', 'projectCreation.areas.ticketTypes.label': 'Ticket types', 'projectCreation.areas.ticketTypes.description': 'Available types, including parent types.', 'projectCreation.areas.ticketPriorities.label': 'Ticket priorities', 'projectCreation.areas.ticketPriorities.description': 'Available priority levels.', 'projectCreation.areas.ticketFields.label': 'Custom ticket fields', 'projectCreation.areas.ticketFields.description': 'Field definitions without ticket values.', 'projectCreation.areas.ticketLinkTypes.label': 'Ticket link types', 'projectCreation.areas.ticketLinkTypes.description': 'Relationship labels between tickets.', 'projectCreation.areas.repositories.label': 'Repository connections', 'projectCreation.areas.repositories.description': 'Repositories linked to the project.', 'projectCreation.areas.notifications.label': 'Notification actions', 'projectCreation.areas.notifications.description': 'Notification rules and delivery settings.', 'projectCreation.selectedCount': { one: '{count} area selected', other: '{count} areas selected', }, 'projects.workspace': 'Workspace', 'projects.description': 'Your project spaces, ready to work in. Open a project or jump straight to its board and backlog.', 'projects.create': 'New project', 'projects.updated': 'Project update', 'projects.available': { one: '{count} project available', other: '{count} projects available', }, 'projects.open': 'Open {name} overview', 'projects.openBoard': 'Open {name} board', 'projects.openBacklog': 'Open {name} backlog', 'projects.overview': 'Project overview', 'projects.empty.title': 'No projects to show', 'projects.empty.createDescription': 'Create a project to give your team a place to plan and track work.', 'projects.empty.accessDescription': 'Projects appear here when you have access. Ask a workspace or project administrator to add you.', 'projects.empty.create': 'Create your first project', 'projects.back': 'All projects', 'projects.hubDescription': 'Follow work on the board or explore tickets in the backlog.', 'projects.workAreas': 'Project work areas', 'projects.boardDescription': 'See work across the project’s workflow and open tickets in their current status.', 'projects.backlogDescription': 'Explore incoming work, review ticket details, and plan what comes next.', 'projects.boardAction': 'Open board', 'projects.backlogAction': 'Open backlog', 'projects.settingsDescription': 'Manage this project’s configuration, integrations, and access.', 'projects.saveTemplate': 'Save as new template', 'projects.templateTitle': 'Based on {name}', 'projects.templateDescription': 'Inherited areas follow the linked template. Overridden areas use this project’s own configuration.', 'projects.inheritedArea': '{name} · inherited', 'projects.overriddenArea': '{name} · overridden', 'dashboard.eyebrow': 'Personal workspace', 'dashboard.greeting': 'Welcome back, {name}', 'dashboard.description': 'A current view of tickets assigned to you in projects you can access.', 'dashboard.summary': 'Work summary', 'dashboard.summary.assignedTickets': 'Assigned tickets', 'dashboard.summary.projects': 'Projects with assigned work', 'dashboard.summary.blockedTickets': 'Blocked tickets', 'dashboard.assignedWork': 'My assigned tickets', 'dashboard.assignedWorkDescription': 'Your work is grouped by project and ordered with the newest tickets first.', 'dashboard.projectTickets': 'Tickets assigned to you in {name}', 'dashboard.openProject': 'Open {name}', 'dashboard.openProjectAction': 'Open project', 'dashboard.empty.title': 'No tickets assigned to you', 'dashboard.empty.description': 'Tickets assigned to you in projects you can access will appear here.', 'dashboard.empty.action': 'Browse projects', 'auth.home': 'KanbanGit home', 'auth.accountAccess': 'Account access', 'auth.backToLogin': 'Return to sign in', 'auth.signOut': 'Sign out', 'auth.signingOut': 'Signing out…', 'auth.password.show': 'Show password', 'auth.password.hide': 'Hide password', 'auth.login.title': 'Welcome back', 'auth.login.description': 'Sign in to continue to your workspace.', 'auth.login.email': 'Email address', 'auth.login.emailPlaceholder': 'you@example.com', 'auth.login.password': 'Password', 'auth.login.remember': 'Remember me', 'auth.login.forgot': 'Forgot password?', 'auth.login.submit': 'Sign in', 'auth.login.pending': 'Signing in…', 'auth.login.help': 'Need an account? Contact your workspace administrator.', 'auth.login.statusTitle': 'Account update', 'auth.forgot.title': 'Reset your password', 'auth.forgot.description': 'Enter your account email and we will send you a secure reset link.', 'auth.forgot.email': 'Email address', 'auth.forgot.emailPlaceholder': 'you@example.com', 'auth.forgot.emailHint': 'Use the email address associated with your KanbanGit account.', 'auth.forgot.submit': 'Send reset link', 'auth.forgot.pending': 'Sending reset link…', 'auth.forgot.sentTitle': 'Reset link sent', 'auth.reset.title': 'Choose a new password', 'auth.reset.description': 'Create a new password for the account linked below.', 'auth.reset.email': 'Account email', 'auth.reset.password': 'New password', 'auth.reset.passwordHint': 'Use a password you do not use for another account.', 'auth.reset.passwordConfirmation': 'Confirm new password', 'auth.reset.submit': 'Save new password', 'auth.reset.pending': 'Updating your password…', 'auth.reset.invalidTitle': 'This reset link is no longer valid', 'auth.reset.requestNew': 'Request a new reset link', 'auth.reset.footer': 'For your security, reset links expire and can only be used once.', 'auth.confirm.title': 'Confirm it is you', 'auth.confirm.description': 'This action affects sensitive account information. Enter your password to continue.', 'auth.confirm.password': 'Current password', 'auth.confirm.passwordHint': 'Your password is checked securely and is never saved in a draft.', 'auth.confirm.submit': 'Confirm and continue', 'auth.confirm.pending': 'Confirming your password…', 'auth.confirm.footer': 'Password confirmation expires automatically after a short time.', 'auth.forceChange.title': 'Secure your account', 'auth.forceChange.description': 'You need to replace your temporary password before continuing to KanbanGit.', 'auth.forceChange.currentPassword': 'Temporary password', 'auth.forceChange.password': 'New password', 'auth.forceChange.passwordHint': 'Choose a password that differs from your temporary password.', 'auth.forceChange.passwordConfirmation': 'Confirm new password', 'auth.forceChange.submit': 'Save password and continue', 'auth.forceChange.pending': 'Securing your account…', 'auth.forceChange.statusTitle': 'Password update', 'auth.forceChange.wrongAccount': 'Not the account you expected?', 'auth.forceChange.footer': 'Your password entries are kept in memory only and are cleared when you leave.', 'auth.verify.title': 'Check your inbox', 'auth.verify.description': 'Open the verification link in your email to finish confirming your account.', 'auth.verify.emailLabel': 'Verification email address', 'auth.verify.resend': 'Resend verification email', 'auth.verify.pending': 'Sending verification email…', 'auth.verify.sentTitle': 'Verification link sent', 'auth.verify.sentDescription': 'Check your inbox for a new link. If it does not arrive, check your spam folder.', 'auth.verify.help': 'Already verified in another tab?', 'auth.verify.continue': 'Continue to workspace', 'auth.verify.wrongAccount': 'Wrong account? Sign out and use a different email address.', 'auth.twoFactor.title': 'Two-step verification', 'auth.twoFactor.description': 'Enter the six-digit code from your authenticator app to finish signing in.', 'auth.twoFactor.code': 'Authentication code', 'auth.twoFactor.codeHint': 'Enter all six digits, including any leading zero.', 'auth.twoFactor.recoveryTitle': 'Use a recovery code', 'auth.twoFactor.recoveryDescription': 'Enter one of the recovery codes you saved when you set up two-factor authentication.', 'auth.twoFactor.recoveryCode': 'Recovery code', 'auth.twoFactor.recoveryHint': 'Each recovery code can only be used once.', 'auth.twoFactor.useRecovery': 'Use a recovery code instead', 'auth.twoFactor.useCode': 'Use an authenticator code instead', 'auth.twoFactor.submit': 'Verify and sign in', 'auth.twoFactor.pending': 'Verifying your code…', 'auth.feedback.pending': 'Please wait…', 'auth.feedback.completed': 'Request completed', 'auth.feedback.validationTitle': 'Check your details', 'auth.feedback.validationDescription': 'Review the message below and try again. Your entries have been kept.', 'auth.feedback.expiredTitle': 'Your session has expired', 'auth.feedback.expiredDescription': 'Return to sign in to start a new session. You will need to enter your details again.', 'auth.feedback.limitedTitle': 'Too many attempts', 'auth.feedback.limitedDescription': 'Please wait a moment before trying again.', 'auth.feedback.networkDescription': 'We could not confirm the result. Your entries are still here. Check your connection before trying again.', 'auth.feedback.serverDescription': 'The server returned an unexpected response. Your entries are still here. Please try again in a moment.', 'auth.feedback.cancelledDescription': 'The request was interrupted. Your entries are still here if you want to try again.', 'navigation.main': 'Main navigation', 'navigation.workspace': 'Workspace', 'navigation.project': 'Project navigation', 'navigation.projectSettings': 'Project settings', 'navigation.account': 'Account', 'navigation.dashboard': 'Dashboard', 'navigation.projects': 'Projects', 'navigation.templates': 'Project templates', 'navigation.users': 'Users', 'navigation.teams': 'Teams', 'navigation.overview': 'Overview', 'navigation.board': 'Board', 'navigation.backlog': 'Backlog', 'navigation.general': 'General', 'navigation.boardSettings': 'Board settings', 'navigation.ticketSettings': 'Ticket settings', 'navigation.repositories': 'Repositories', 'navigation.notifications': 'Notifications', 'navigation.access': 'Access', 'navigation.settings': 'Settings', 'navigation.profile': 'Profile', 'navigation.security': 'Security', 'navigation.gitConnections': 'Git connections', 'navigation.applications': 'Applications', 'navigation.appearance': 'Appearance', 'navigation.settingsDescription': 'Manage your profile, security, and Git integration settings.', 'settings.eyebrow': 'Account settings', 'navigation.createTicket': 'New ticket', 'navigation.createProject': 'New project', 'navigation.open': 'Open navigation', 'navigation.close': 'Close navigation', 'navigation.expand': 'Expand sidebar', 'navigation.collapse': 'Collapse sidebar', 'navigation.mobileDescription': 'Navigate your workspace and current project.', 'navigation.skipToContent': 'Skip to content', 'navigation.userMenu': 'Account menu for {name}', 'navigation.logout': 'Log out', 'navigation.breadcrumbs': 'Breadcrumbs', 'appearance.label': 'Color theme', 'appearance.light': 'Light', 'appearance.lightDescription': 'Use a bright workspace with dark text and clear borders.', 'appearance.dark': 'Dark', 'appearance.darkDescription': 'Reduce glare with a darker workspace and balanced contrast.', 'appearance.system': 'System', 'appearance.systemDescription': 'Follow the light or dark preference set on this device.', 'appearance.title': 'Appearance', 'appearance.description': 'Choose how KanbanGit looks on this device.', 'appearance.persistenceHint': 'Your choice is saved on this device and restored when you open KanbanGit again.', 'profile.title': 'Profile', 'profile.description': 'Keep your personal details and profile picture up to date.', 'profile.information': 'Profile information', 'profile.picture': 'Profile picture', 'profile.pictureDescription': 'Help teammates recognize you throughout the workspace.', 'profile.picturePreview': 'Profile picture preview', 'profile.choosePicture': 'Choose picture', 'profile.changePicture': 'Choose another', 'profile.discardPicture': 'Discard selection', 'profile.removePicture': 'Remove picture', 'profile.removingPicture': 'Removing picture…', 'profile.selectedPicture': 'Selected: {name}', 'profile.pictureHelp': 'Choose a PNG, JPG, or WebP image up to 2 MB. On mobile, you can select from your photo library or camera.', 'profile.name': 'Name', 'profile.namePlaceholder': 'Full name', 'profile.email': 'Email address', 'profile.emailPlaceholder': 'Email address', 'profile.emailUnverified': 'Your email address is unverified.', 'profile.resendVerification': 'Resend the verification email', 'profile.verificationSent': 'A new verification link has been sent to your email address.', 'profile.save': 'Save profile', 'profile.saving': 'Saving profile…', 'profile.unsaved': 'You have unsaved profile changes.', 'profile.delete.title': 'Delete account', 'profile.delete.description': 'Permanently delete your account and all of its resources.', 'profile.delete.warning': 'This action cannot be undone', 'profile.delete.warningDescription': 'Your account and associated data will be permanently removed.', 'profile.delete.action': 'Delete account', 'profile.delete.confirmTitle': 'Are you sure you want to delete your account?', 'profile.delete.confirmDescription': 'Enter your password to confirm that you want to permanently delete your account and its data.', 'profile.delete.password': 'Password', 'profile.delete.confirmAction': 'Permanently delete account', 'common.cancel': 'Cancel', 'common.close': 'Close', 'common.retry': 'Try again', 'feedback.empty': 'Nothing here yet', 'feedback.saved': 'Changes saved', 'forms.saving': 'Saving changes…', 'forms.leaveConfirm': 'You have unsaved changes. Leave without saving?', 'forms.validationTitle': 'Check your entries', 'forms.validationDescription': 'The server rejected some fields. Your entries are still here. Correct the highlighted errors and save again.', 'forms.networkTitle': 'Connection interrupted', 'forms.networkDescription': 'Your entries are still here, but we could not confirm whether the server saved them. Check your connection and verify the result before trying again.', 'forms.serverTitle': 'The request could not be completed', 'forms.serverDescription': 'Your entries are still here. The server returned an unexpected response; your session may have expired. Verify the result before trying again.', 'forms.cancelledTitle': 'Saving was interrupted', 'forms.cancelledDescription': 'Your entries are still here. Check whether the changes were saved before trying again.', 'tickets.noBranches': 'No matching branches', 'tickets.noBranchesDescription': 'No matching branches were found across the linked repositories.', 'tickets.noPullRequests': 'No matching pull requests', 'tickets.noPullRequestsDescription': 'No matching pull requests were found across the linked repositories.', 'tickets.open': 'Open {key}: {title}', 'tickets.blocked': 'Blocked', 'tickets.blockerComment': 'Blocker: {comment}', 'tickets.typeLabel': 'Type: {name}', 'tickets.priorityLabel': 'Priority: {name}', 'tickets.statusLabel': 'Status: {name}', 'tickets.noStatus': 'No status', 'tickets.assignedTo': 'Assigned to {name}', 'tickets.unassigned': 'Unassigned', 'tickets.tree.expand': 'Expand children of {key}', 'tickets.tree.collapse': 'Collapse children of {key}', 'common.save': 'Save', 'common.loading': 'Loading…', 'common.error': 'Something went wrong.', 'pagination.page': 'Page {page} of {total}', 'tickets.count': { one: '{count} ticket', other: '{count} tickets', }, 'ticketDetail.description': 'Description', 'ticketDetail.noDescription': 'No description has been added yet.', 'ticketDetail.checklist': 'Acceptance criteria', 'ticketDetail.noChecklist': 'No acceptance criteria have been added yet.', 'ticketDetail.saveChecklistFirst': 'Save checklist text changes before toggling completion directly.', 'ticketDetail.edit': 'Edit ticket', 'ticketDetail.editDescription': 'Tracked ticket changes create worklog entries automatically.', 'ticketDetail.git': 'Git', 'ticketDetail.relationships': 'Relationships', 'ticketDetail.history': 'Worklog', 'ticketDetail.metadata': 'Ticket information', 'ticketDetail.sections': 'Ticket sections', 'ticketDetail.status': 'Status', 'ticketDetail.type': 'Type', 'ticketDetail.priority': 'Priority', 'ticketDetail.assignee': 'Assignee', 'ticketDetail.author': 'Author', 'ticketDetail.noAuthor': 'No author', 'ticketDetail.storyPoints': 'Estimated story points', 'ticketDetail.notSet': 'Not set', 'ticketDetail.created': 'Created', 'ticketDetail.updated': 'Last updated', 'ticketDetail.backToProject': 'Back to project', 'ticketDetail.openBacklog': 'Open backlog', 'ticketDetail.openBoard': 'Open board', 'ticketDetail.readOnly': 'Read only', 'ticketDetail.title': 'Title', 'ticketDetail.parent': 'Parent ticket', 'ticketDetail.noParent': 'No parent ticket', 'ticketDetail.checklistEditor': 'Acceptance criteria checklist', 'ticketDetail.checklistHelp': 'Use [ ] / [x] for checklist items. Indent with two spaces for nested steps. Text changes are saved with the main ticket update.', 'ticketDetail.checklistPlaceholder': '[ ] User can sign in\n [x] Validation is shown for invalid credentials', 'ticketDetail.blocked': 'Mark ticket as blocked', 'ticketDetail.blocker': 'Blocker', 'ticketDetail.blockerDescription': 'Record whether progress is blocked and why. Changes are added to the ticket worklog.', 'ticketDetail.blockerActive': 'Blocked', 'ticketDetail.blockerInactive': 'Not blocked', 'ticketDetail.blockerActiveDescription': 'A blocker reason is required while this ticket is blocked.', 'ticketDetail.blockerInactiveDescription': 'This ticket currently has no active blocker.', 'ticketDetail.blockerComment': 'Blocker comment', 'ticketDetail.blockerCommentHelp': 'Explain the concrete dependency or decision preventing progress.', 'ticketDetail.blockerPlaceholder': 'Describe what currently blocks progress on this ticket.', 'ticketDetail.saveBlocker': 'Save blocker', 'ticketDetail.unblockTicket': 'Unblock ticket', 'ticketDetail.resetBlocker': 'Discard blocker changes', 'ticketDetail.savingBlocker': 'Saving blocker…', 'ticketDetail.customFields': 'Custom fields', 'ticketDetail.customFieldsDescription': 'Project-configured fields can be tracked directly on the ticket.', 'ticketDetail.noCustomFields': 'No custom fields are configured for this project yet.', 'ticketDetail.saveChanges': 'Save changes', 'ticketDetail.branches': 'Branches', 'ticketDetail.branchesDescription': 'Matching branches are discovered from linked repositories when the branch name starts with this ticket key.', 'ticketDetail.createBranch': 'Create branch', 'ticketDetail.createBranchTitle': 'Create branch from ticket', 'ticketDetail.createBranchDescription': 'Pick a linked repository, confirm the suggested branch name, and create it directly in Gitea.', 'ticketDetail.repository': 'Repository', 'ticketDetail.branchName': 'Branch name', 'ticketDetail.branchAccess': 'You can only create branches in repositories that match one of your personal Git connections.', 'ticketDetail.gitAccessRequired': 'Personal Git access required', 'ticketDetail.personalAccessRequired': 'personal Git access required', 'ticketDetail.openGitConnections': 'Open Git connections', 'ticketDetail.createNow': 'Create now', 'ticketDetail.creatingBranch': 'Creating branch…', 'ticketDetail.noLinkedRepositories': 'No linked repositories', 'ticketDetail.noLinkedRepositoriesDescription': 'A project administrator needs to link a repository before Git activity can appear here.', 'ticketDetail.branchesUnavailable': 'Branches unavailable', 'ticketDetail.pullRequestsUnavailable': 'Pull requests unavailable', 'ticketDetail.openRepositoryExternal': 'Open {repository} on {provider} (opens in a new tab)', 'ticketDetail.openPullRequestExternal': 'Open pull request #{number} on {provider} (opens in a new tab)', 'ticketDetail.inspectBranches': 'Connect a matching Git account in your user settings to inspect branches for this repository.', 'ticketDetail.pullRequests': 'Pull requests', 'ticketDetail.pullRequestsDescription': 'Matching pull requests are detected from linked repositories by checking whether the source branch starts with this ticket key.', 'ticketDetail.inspectPullRequests': 'Connect a matching Git account in your user settings to inspect pull requests for this repository.', 'ticketDetail.checkingBranch': 'Checking whether this branch name is valid and still available...', 'ticketDetail.selectRepository': 'Select a linked repository to validate the branch name.', 'ticketDetail.connectGitFirst': 'Connect a matching Git connection in your user settings first.', 'ticketDetail.branchRequired': 'Branch name is required.', 'ticketDetail.branchValidationFailed': '{app} could not validate this branch name right now.', 'ticketDetail.checklistSaveFailed': 'Checklist status could not be saved right now.', 'ticketDetail.children': 'Child tickets', 'ticketDetail.childrenDescription': 'Parent tickets expose their full child tree here, including nested parent chains.', 'ticketDetail.noChildren': 'No child tickets are assigned to this ticket yet.', 'ticketDetail.parentDescription': 'This ticket belongs to the parent shown here.', 'ticketDetail.linkedTickets': 'Linked tickets', 'ticketDetail.linkedTicketsDescription': 'Track cross-ticket relationships with project-defined link labels.', 'ticketDetail.linkType': 'Link type', 'ticketDetail.linkedTicket': 'Linked ticket', 'ticketDetail.saveLink': 'Save link', 'ticketDetail.noLinks': 'No ticket links are configured for this ticket yet.', 'ticketDetail.removeLink': 'Remove', 'ticketRelationships.hierarchy': 'Hierarchy', 'ticketRelationships.editParent': 'Change parent', 'ticketRelationships.parentHelp': 'Change parent to assign this ticket or choose “No parent ticket” to detach it.', 'ticketRelationships.childrenHelp': 'Open a child ticket to change its parent. Expand a group to see its descendants.', 'ticketRelationships.addLink': 'Add or update a link', 'ticketRelationships.selectTicket': 'Select a ticket', 'ticketRelationships.directionHelp': 'The selected relationship points from this ticket to the linked ticket. Saving an existing pair updates its type and direction.', 'ticketRelationships.outgoing': 'Outgoing', 'ticketRelationships.incoming': 'Incoming', 'ticketRelationships.removeLink': 'Remove link to {key}', 'ticketRelationships.noTypes': 'No link types are configured for this project.', 'ticketRelationships.noTargets': 'No other tickets are available to link in this project.', 'ticketDetail.historyDescription': 'Every tracked ticket change is recorded with actor and timestamp.', 'ticketDetail.noHistory': 'No worklog entries exist for this ticket yet.', 'ticketDetail.system': 'System', 'ticketDetail.historyType.created': 'Ticket created', 'ticketDetail.historyType.updated': 'Ticket updated', 'ticketDetail.historyType.statusChanged': 'Status changed', 'ticketDetail.historyType.linkUpdated': 'Link added', 'ticketDetail.historyType.linkRemoved': 'Link removed', 'ticketDetail.sourceBranch': 'Source branch: {name}', 'ticketForm.create': 'Create ticket', 'ticketForm.pageTitle': 'Create {project} ticket', 'ticketForm.createDescription': 'Add a ticket to {project}.', 'ticketForm.backToBoard': 'Back to board', 'ticketForm.backToBacklog': 'Back to backlog', 'ticketForm.details': 'Ticket details', 'ticketForm.keyAssigned': 'The ticket key is assigned after creation.', 'ticketForm.titlePlaceholder': 'Implement repository sync', 'ticketForm.descriptionPlaceholder': 'Describe the expected behavior and relevant context.', 'ticketForm.checklistHelp': 'Use [ ] / [x] for checklist items. Indent with two spaces for nested steps.', 'ticketForm.checklistPreview': 'Checklist preview', 'ticketForm.metadataRequired': 'Ticket creation needs at least one type, one priority, and one status.', 'ticketForm.openSettings': 'Open ticket settings', 'ticketForm.creating': 'Creating ticket…', 'ticketForm.saving': 'Saving changes…', 'ticketForm.reset': 'Discard changes', 'ticketForm.unsaved': 'Unsaved changes', 'ticketForm.ready': 'Ready for a new ticket', 'ticketForm.saved': 'All changes saved', 'ticketForm.authorRestricted': 'Only project admins can change the author.', 'ticketForm.blocker': 'Blocker', 'projectSettings.pageTitle': '{project} general settings', 'projectSettings.description': 'Manage settings and template inheritance for {project}.', 'projectSettings.generalDescription': 'Review project identity, setting sources, and administrative actions.', 'projectSettings.identity': 'Project identity', 'projectSettings.identityDescription': 'The name and key belong to this project and are never inherited from a template.', 'projectSettings.name': 'Project name', 'projectSettings.key': 'Project key', 'projectSettings.local': 'Local', 'projectSettings.inherited': 'Inherited', 'projectSettings.override': 'Local override', 'projectSettings.display': 'Ticket display', 'projectSettings.showAuthor': 'Show author', 'projectSettings.showStoryPoints': 'Show story points', 'projectSettings.enabled': 'Enabled', 'projectSettings.disabled': 'Disabled', 'projectSettings.displayDescription': 'Manage these display options in Ticket settings.', 'projectSettings.template': 'Template baseline', 'projectSettings.templateDescription': 'Manage the linked template or reset individual areas using the inheritance panel.', 'projectSettings.currentTemplate': 'Current linked template', 'projectSettings.noTemplate': 'No linked template', 'projectSettings.linked': 'Template inheritance active', 'projectSettings.standalone': 'Standalone', 'projectSettings.standaloneDescription': 'This project manages its settings locally. Published template updates are not applied.', 'projectSettings.noAlternatives': 'No other published templates', 'projectSettings.noAlternativesDescription': 'A different published template is required to switch this project.', 'projectSettings.switch': 'Switch template', 'projectSettings.switching': 'Switching template…', 'projectSettings.switchWarning': 'Switching templates can replace or remove project configuration in copied areas, including workflows, ticket metadata, repositories, and notifications.', 'projectSettings.publishedTemplate': 'Published template', 'projectSettings.selectTemplate': 'Select a template', 'projectSettings.confirmation': 'Confirmation key', 'projectSettings.confirmPlaceholder': 'Type {key} exactly', 'projectSettings.confirmHelp': 'Enter the exact project key {key} to confirm this action. The key is case sensitive.', 'projectSettings.danger': 'Danger zone', 'projectSettings.deleteDescription': 'Permanently delete this project and all of its tickets, board columns, ticket metadata, repository connections, and project permissions.', 'projectSettings.irreversible': 'This action cannot be undone.', 'projectSettings.delete': 'Delete project', 'projectSettings.deleting': 'Deleting project…', 'projectSettings.updated': 'Project settings updated.', 'inheritance.title': 'Template inheritance', 'inheritance.description': 'Settings linked to {template}.', 'inheritance.help': 'Each area inherits independently. Settings outside the template are managed locally.', 'inheritance.areas': 'Setting sources', 'inheritance.overrideHelp': 'Local changes stay in place when the template is updated.', 'inheritance.reset': 'Reset to template', 'inheritance.resetArea': 'Reset {area} to template', 'inheritance.resetting': 'Resetting…', 'inheritance.confirmTitle': 'Reset this setting area?', 'inheritance.confirmDescription': 'Replace local changes in {area} with the current baseline from {template}. Other setting areas keep their current values.', 'inheritance.resetWarning': 'Local configuration in this area may be replaced or removed.', 'inheritance.statusHelp': 'Choose where tickets in local statuses should move before those statuses are removed.', 'inheritance.statusLabel': '{status} ({count} tickets)', 'inheritance.selectStatus': 'Select replacement status', 'inheritance.area.projectSettings': 'Project settings', 'inheritance.area.boardColumns': 'Board columns', 'inheritance.area.ticketStatuses': 'Ticket statuses', 'inheritance.area.statusTransitions': 'Status transitions', 'inheritance.area.ticketTypes': 'Ticket types', 'inheritance.area.ticketPriorities': 'Ticket priorities', 'inheritance.area.ticketFields': 'Custom ticket fields', 'inheritance.area.ticketLinkTypes': 'Ticket link types', 'inheritance.area.repositoryConnections': 'Repository connections', 'inheritance.area.notificationActions': 'Notification actions', 'gitConnections.description': 'Connect your personal Git account to browse repositories, branches, and pull requests you can access.', 'gitConnections.privacy': 'Connections belong to your account. Saved tokens stay hidden. Without a matching connection, only repository names are available.', 'gitConnections.add': 'Add connection', 'gitConnections.editAction': 'Edit', 'gitConnections.edit': 'Edit connection', 'gitConnections.remove': 'Remove', 'gitConnections.removeTitle': 'Remove connection', 'gitConnections.saved': 'Saved connections', 'gitConnections.empty': 'No Git connections yet', 'gitConnections.emptyDescription': 'Add a Gitea connection to access your repositories and their Git activity.', 'gitConnections.unnamedAccount': 'Unnamed remote account', 'gitConnections.remoteId': 'Remote user ID: {id}', 'gitConnections.editAccount': 'Edit {account} at {server}', 'gitConnections.removeAccount': 'Remove {account} at {server}', 'gitConnections.addDescription': 'Connect a Gitea account using its server URL and a personal application token.', 'gitConnections.editDescription': 'Update the server URL and enter a fresh token to verify this connection.', 'gitConnections.removeDescription': 'Remove this personal connection? Repository links remain, but Git activity will require another matching connection.', 'gitConnections.gitea': 'Gitea', 'gitConnections.baseUrl': 'Gitea base URL', 'gitConnections.token': 'Application token', 'gitConnections.newToken': 'New application token', 'gitConnections.tokenPlaceholder': 'Paste your Gitea application token', 'gitConnections.tokenHelp': 'Your token is verified with Gitea before saving. It is never shown in the saved connection.', 'gitConnections.verifying': 'Verifying connection…', 'gitConnections.save': 'Save changes', 'gitConnections.removing': 'Removing connection…', 'gitConnections.forbidden': 'Connection access denied', 'gitConnections.forbiddenDescription': 'You can only manage connections belonging to your account. Close this dialog and refresh the page.', 'gitConnections.added': 'Git connection added.', 'gitConnections.updated': 'Git connection updated.', 'gitConnections.removed': 'Git connection removed.', 'metadata.title': 'Ticket settings', 'metadata.pageTitle': '{project} ticket settings', 'metadata.description': 'Manage ticket types, priorities, and the information shown on your tickets.', 'metadata.updated': 'Ticket settings updated.', 'metadata.types': 'Ticket types', 'metadata.priorities': 'Priorities', 'metadata.addType': 'Add type', 'metadata.addPriority': 'Add priority', 'metadata.typesDescription': 'Define your project’s ticket types and their order. Parent types can contain child tickets.', 'metadata.prioritiesDescription': 'Define and order project-specific priorities. The last priority must be kept.', 'metadata.parentType': 'Parent type', 'metadata.standardType': 'Standard type', 'metadata.assignedTickets': 'Assigned tickets: {count}', 'metadata.editEntry': 'Edit {name}', 'metadata.deleteEntry': 'Delete {name}', 'metadata.lastType': 'The last ticket type cannot be deleted. Add another type first.', 'metadata.lastPriority': 'The last priority cannot be deleted. Add another priority first.', 'metadata.display': 'Display options', 'metadata.displayDescription': 'Choose which optional information is available on this project’s tickets.', 'metadata.author': 'Show ticket author', 'metadata.authorHelp': 'Display the author on ticket details.', 'metadata.storyPoints': 'Enable story points', 'metadata.storyPointsHelp': 'Allow estimates in story points on tickets.', 'metadata.name': 'Name', 'metadata.positionHelp': 'Choose a position from 1 to {count}. Other entries shift automatically.', 'metadata.allowChildren': 'Allow child tickets', 'metadata.parentFixed': 'Whether a type allows child tickets is fixed after creation. Its name and position remain editable.', 'metadata.editHelp': 'Choose a project-specific name. Changes apply to tickets using this entry.', 'metadata.deleteTypeHelp': 'Delete this type? Assigned tickets must be moved to a replacement type first. This action cannot be undone.', 'metadata.deletePriorityHelp': 'Delete this priority? All tickets assigned to this priority will also be permanently deleted. There is no replacement mapping for priorities. This action cannot be undone.', 'metadata.replacementHelp': 'Move {count} assigned tickets to another type before deleting this one.', 'metadata.replacement': 'Replacement ticket type', 'metadata.chooseType': 'Choose a type', 'metadata.parentReplacement': 'If any affected ticket has child tickets, choose a parent type. The server checks this before deleting.', 'metadata.customFields': 'Custom fields', 'metadata.customFieldsDescription': 'Define the project-specific user and number fields shown on tickets.', 'metadata.addField': 'Add field', 'metadata.noCustomFields': 'No custom fields', 'metadata.noCustomFieldsDescription': 'Add a field when this project needs structured information beyond the standard ticket details.', 'metadata.storedValues': 'Stored values: {count}', 'metadata.editField': 'Edit {name}', 'metadata.deleteField': 'Delete {name}', 'metadata.fieldEditorHelp': 'Choose a label and one of the supported field types. Existing ticket values remain attached when this definition is edited.', 'metadata.deleteFieldHelp': 'Delete this custom field? This action cannot be undone.', 'metadata.fieldDeletionImpact': 'Deleting this field also permanently removes {count} stored ticket values.', 'metadata.fieldLabel': 'Field label', 'metadata.fieldType': 'Field type', 'metadata.fieldTypeHelp': 'Only the field types already supported by this project are available.', 'metadata.linkTypes': 'Link types', 'metadata.linkTypesDescription': 'Define the labels shown from each side of a ticket relationship.', 'metadata.addLinkType': 'Add link type', 'metadata.noLinkTypes': 'No link types', 'metadata.noLinkTypesDescription': 'Add a link type before tickets can be connected with a project-specific relationship.', 'metadata.ticketRelationships': 'Ticket relationships: {count}', 'metadata.linkDirection': '{source} points to {counterpart}', 'metadata.editLinkType': 'Edit {name}', 'metadata.deleteLinkType': 'Delete {name}', 'metadata.linkTypeEditorHelp': 'The source label is shown on the originating ticket; the counterpart label is shown on the linked ticket.', 'metadata.deleteLinkTypeHelp': 'Delete this link type? This action cannot be undone.', 'metadata.linkTypeDeletionImpact': 'Deleting this link type also permanently removes {count} ticket relationships.', 'metadata.sourceLabel': 'Source label', 'metadata.sourceLabelHelp': 'Shown when viewing the ticket where the relationship starts.', 'metadata.counterpartLabel': 'Counterpart label', 'metadata.counterpartLabelHelp': 'Shown when viewing the ticket at the other end of the relationship.', } as const;