574 lines
30 KiB
TypeScript
574 lines
30 KiB
TypeScript
export const en = {
|
||
'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.',
|
||
'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.dark': 'Dark',
|
||
'appearance.system': 'System',
|
||
'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.blockerComment': 'Blocker comment',
|
||
'ticketDetail.blockerPlaceholder':
|
||
'Describe what currently blocks progress on this ticket.',
|
||
'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.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',
|
||
} as const;
|